@@ -15,9 +15,9 @@ import qualified Control.Monad.State as State
15import qualified Data.List as List
15import qualified Data.List as List
16import qualified Data.Map as Map
16import qualified Data.Map as Map
17import qualified Data.Set as Set
17import qualified Data.Set as Set
18−import qualified Data.Text as Text
19import Data.Text (Text)
18import Data.Text (Text)
20+import qualified AST.Helpers as Help
21import qualified AST.Type as T
21import qualified AST.Type as T
22import qualified AST.Variable as Var
22import qualified AST.Variable as Var
23import qualified AST.Module as Module
23import qualified AST.Module as Module
@@ -86,7 +86,7 @@ builtinTypes =
86 , kind 0 ["Int","Float","Char","String","Bool"]
86 , kind 0 ["Int","Float","Char","String","Bool"]
89− tuple n = ( Text.pack ("_Tuple" ++ show n), n )
89+ tuple size = ( Help.makeTuple size, size )
90 kind n names = map (\name -> (name, n)) names
90 kind n names = map (\name -> (name, n)) names
@@ -106,12 +106,12 @@ makeCtors env unions =
106 let (args, result) = tipe (map (VarN) vars)
106 let (args, result) = tipe (map (VarN) vars)
107 return (length args, vars, args, result)
107 return (length args, vars, args, result)
109− tupleCtor n =
109+ tupleCtor size =
112− Text.pack ("_Tuple" ++ show n)
112+ Help.makeTuple size
114− (name, inst n $ \vs -> (vs, foldl (<|) (getType env name) vs))
114+ (name, inst size $ \vs -> (vs, foldl (<|) (getType env name) vs))
116 builtins :: Dict Instantiator
116 builtins :: Dict Instantiator
117 builtins =
117 builtins =