on master help sign in
Add dealiasing for Strings
67503ceevancz
elm/src/Types/Substitutions.hs+4−1
@@ -94,8 +94,11 @@ generalize exceptions (Forall xs cs t) = rescheme (Forall (xs ++ frees) cs t)
94dealias :: [Statement] -> [Statement]
94dealias :: [Statement] -> [Statement]
95dealias stmts = map dealiasS stmts
95dealias stmts = map dealiasS stmts
96 where
96 where
97+ builtins :: [(String,([X],Type))]
98+ builtins = [ ("String", ([], string)) ]
99+
97 getAliases :: [Statement] -> Map.Map String ([X],Type)
100 getAliases :: [Statement] -> Map.Map String ([X],Type)
98− getAliases stmts = Map.fromList (concatMap getAlias stmts)
101+ getAliases stmts = Map.fromList (builtins ++ concatMap getAlias stmts)
99 where getAlias stmt = case stmt of
102 where getAlias stmt = case stmt of
100 TypeAlias alias xs t -> [(alias, (xs,t))]
103 TypeAlias alias xs t -> [(alias, (xs,t))]
101 _ -> []
104 _ -> []