diff -rw Omega1.2/DepthFirstSearch.hs Omega1.x/DepthFirstSearch.hs 15c15,16 < import ST --- > import Control.Monad.ST > import Data.Array.ST 89c90 < mkEmpty bnds = newSTArray bnds False --- > mkEmpty bnds = newArray bnds False 92c93 < contains m v = readSTArray m v --- > contains m v = readArray m v 95c96 < include m v = writeSTArray m v True --- > include m v = writeArray m v True diff -rw Omega1.2/Infer2.hs Omega1.x/Infer2.hs 10c10 < import Data.FiniteMap --- > import qualified Data.Map (Map,lookup,empty,member,toList,insertWith,insert) 35c35,38 < appendFM map key element = addToFM_C add map key [element] --- > addListToMap m [] = m > addListToMap m ((key,val):as) = addListToMap (Data.Map.insert key val m) as > > appendFM map key element = Data.Map.insertWith add key [element] map 39c42 < appendFM2 map ((key,element):xs) = addToFM_C add (appendFM2 map xs) key element --- > appendFM2 map ((key,element):xs) = Data.Map.insertWith add key element (appendFM2 map xs) 98c101 < = TcEnv { var_env :: FiniteMap Var (Sigma,Level,Exp) -- Term Vars --- > = TcEnv { var_env :: Data.Map.Map Var (Sigma,Level,Exp) -- Term Vars 106,107c109,110 < , rules :: FiniteMap String [RWrule] -- Proposition simplifying rules < , refutations :: FiniteMap String Refutation --- > , rules :: Data.Map.Map String [RWrule] -- Proposition simplifying rules > , refutations :: Data.Map.Map String Refutation 114c117 < tcEnvEmpty = TcEnv emptyFM toEnvX [] False 0 Z [] [] emptyFM emptyFM env0 [] initDI [] --- > tcEnvEmpty = TcEnv Data.Map.empty toEnvX [] False 0 Z [] [] Data.Map.empty Data.Map.empty env0 [] initDI [] 156c159 < getTCEnv :: TC (FiniteMap Var (Sigma,Level,Exp)) --- > getTCEnv :: TC (Data.Map.Map Var (Sigma,Level,Exp)) 176c179 < showAllVals n env = mapM f (take n (fmToList(var_env env))) --- > showAllVals n env = mapM f (take n (Data.Map.toList(var_env env))) 179c182 < showSomeVals p env = mapM f (filter p (fmToList(var_env env))) --- > showSomeVals p env = mapM f (filter p (Data.Map.toList(var_env env))) 182c185 < valueNames env = foldr add [] (fmToList (var_env env)) --- > valueNames env = foldr add [] (Data.Map.toList (var_env env)) 212c215 < where extend env = env { var_env = addListToFM (var_env env) pairs --- > where extend env = env { var_env = addListToMap (var_env env) pairs 221c224 < extend env = env { var_env = addListToFM (var_env env) pairs --- > extend env = env { var_env = addListToMap (var_env env) pairs 243c246 < where extend env = env { var_env = addListToFM (var_env env) pairs --- > where extend env = env { var_env = addListToMap (var_env env) pairs 251c254 < env { var_env = addListToFM (var_env env) pairs --- > env { var_env = addListToMap (var_env env) pairs 268c271 < ; case lookupFM env n of --- > ; case Data.Map.lookup n env of 273c276 < getVar nm env = lookupFM (var_env env) nm --- > getVar nm env = Data.Map.lookup nm (var_env env) 277c280 < case lookupFM (rules env) nm of --- > case Data.Map.lookup nm (rules env) of 2020c2023 < ; return(elemFM s (rules env)) --- > ; return(Data.Map.member s (rules env)) 2524c2527 < where initEnv = TcEnv emptyFM toEnvX [] False 0 Z [] [] emptyFM emptyFM env0 [] initDI [] --- > where initEnv = TcEnv Data.Map.empty toEnvX [] False 0 Z [] [] Data.Map.empty Data.Map.empty env0 [] initDI [] diff -rw Omega1.2/Makefile Omega1.x/Makefile 3c3 < ghc Main.hs -O -o omega.exe -auto-all --make -fglasgow-exts -package lang -fallow-undecidable-instances --- > ghc Main.hs -O -o omega.exe -auto-all --make -fglasgow-exts -fallow-undecidable-instances diff -rw Omega1.2/Toplevel.hs Omega1.x/Toplevel.hs 27c27 < import Data.FiniteMap --- > import qualified Data.Map 324c324 < , var_env = addListToFM (var_env old) (filter p (fmToList (var_env new))) --- > , var_env = addListToMap (var_env old) (filter p (Data.Map.toList (var_env new))) 327c327 < , rules = appendFM2 (rules old) (filter p2 (fmToList (rules new))) --- > , rules = appendFM2 (rules old) (filter p2 (Data.Map.toList (rules new)))