on master help sign in
Make sure local types and ctors take precedence over imported ones
3179eaaEvan Czaplicki
src/Canonicalize/Environment/Local.hs+3−3
@@ -113,7 +113,7 @@ addUnion :: ModuleName.Canonical -> Env.Exposed Env.Type -> Valid.Union -> Resul
113addUnion home types union@(Valid.Union (A.At _ name) _ _) =
113addUnion home types union@(Valid.Union (A.At _ name) _ _) =
114 do arity <- checkUnionFreeVars union
114 do arity <- checkUnionFreeVars union
115 let one = Map.singleton home (Env.Union arity home)
115 let one = Map.singleton home (Env.Union arity home)
116− Result.ok $ Map.insertWith Map.union name one types
116+ Result.ok $ Map.insert name one types
117
117
118
118
119
119
@@ -136,7 +136,7 @@ addAlias env@(Env.Env home vs ts cs bs qvs qts qcs) scc =
136 do args <- checkAliasFreeVars alias
136 do args <- checkAliasFreeVars alias
137 ctype <- Type.canonicalize env tipe
137 ctype <- Type.canonicalize env tipe
138 let one = Map.singleton home (Env.Alias (length args) home args ctype)
138 let one = Map.singleton home (Env.Alias (length args) home args ctype)
139− let ts1 = Map.insertWith Map.union name one ts
139+ let ts1 = Map.insert name one ts
140 Result.ok $ Env.Env home vs ts1 cs bs qvs qts qcs
140 Result.ok $ Env.Env home vs ts1 cs bs qvs qts qcs
141
141
142 Graph.CyclicSCC [] ->
142 Graph.CyclicSCC [] ->
@@ -273,7 +273,7 @@ addCtors (Valid.Module _ _ _ _ _ _ unions aliases _ _) env@(Env.Env home vs ts c
273 (Dups.unions (map snd unionInfo))
273 (Dups.unions (map snd unionInfo))
274 (Dups.unions (map snd aliasInfo))
274 (Dups.unions (map snd aliasInfo))
275
275
276− let cs2 = Map.unionWith Map.union cs ctors
276+ let cs2 = Map.union ctors cs
277
277
278 Result.ok
278 Result.ok
279 ( Env.Env home vs ts cs2 bs qvs qts qcs
279 ( Env.Env home vs ts cs2 bs qvs qts qcs