@@ -5,7 +5,6 @@ import Control.Monad
5import qualified Control.Monad.State as State
5import qualified Control.Monad.State as State
6import qualified Data.Traversable as Traverse
6import qualified Data.Traversable as Traverse
7import qualified Data.Map as Map
7import qualified Data.Map as Map
9import Data.List (isPrefixOf)
8import Data.List (isPrefixOf)
10import qualified Data.UnionFind.IO as UF
9import qualified Data.UnionFind.IO as UF
@@ -61,7 +60,7 @@ makeConstructors :: Environment
61 -> Map.Map String (IO (Int, [Variable], [Type], Type))
60 -> Map.Map String (IO (Int, [Variable], [Type], Type))
62makeConstructors env datatypes = Map.fromList builtins
61makeConstructors env datatypes = Map.fromList builtins
64− list t = (types env ! "_List") <| t
63+ list t = (types env Map.! "_List") <| t
66 inst :: Int -> ([Type] -> ([Type], Type)) -> IO (Int, [Variable], [Type], Type)
65 inst :: Int -> ([Type] -> ([Type], Type)) -> IO (Int, [Variable], [Type], Type)
67 inst numTVars tipe = do
66 inst numTVars tipe = do
@@ -71,7 +70,7 @@ makeConstructors env datatypes = Map.fromList builtins
72 tupleCtor n =
71 tupleCtor n =
73 let name = "_Tuple" ++ show n
72 let name = "_Tuple" ++ show n
74− in (name, inst n $ \vs -> (vs, foldl (<|) (types env ! name) vs))
73+ in (name, inst n $ \vs -> (vs, foldl (<|) (types env Map.! name) vs))
76 builtins :: [ (String, IO (Int, [Variable], [Type], Type)) ]
75 builtins :: [ (String, IO (Int, [Variable], [Type], Type)) ]
77 builtins = [ ("[]", inst 1 $ \ [t] -> ([], list t))
76 builtins = [ ("[]", inst 1 $ \ [t] -> ([], list t))