@@ -137,10 +137,10 @@ collectLowerVars :: Valid.Module -> Result i (Map.Map N.Name ())
137137collectLowerVars (Valid.Module _ _ _ _ _ decls _ _ _ effects) =
138138 let
139139 addDecl (A.At _ (Valid.Decl (A.At region name) _ _ _)) dict =
140− Dups.insert name region () () dict
140+ Dups.insert name region () dict
141141
142142 addPort (Valid.Port (A.At region name) _) dict =
143− Dups.insert name region () () dict
143+ Dups.insert name region () dict
144144
145145 effectDict =
146146 case effects of
@@ -153,15 +153,15 @@ collectLowerVars (Valid.Module _ _ _ _ _ decls _ _ _ effects) =
153153 Valid.Manager _ manager ->
154154 case manager of
155155 Valid.Cmd (A.At region _) ->
156− Dups.one "command" region () ()
156+ Dups.one "command" region ()
157157
158158 Valid.Sub (A.At region _) ->
159− Dups.one "subscription" region () ()
159+ Dups.one "subscription" region ()
160160
161161 Valid.Fx (A.At regionCmd _) (A.At regionSub _) ->
162162 Dups.union
163− (Dups.one "command" regionCmd () ())
164− (Dups.one "subscription" regionSub () ())
163+ (Dups.one "command" regionCmd ())
164+ (Dups.one "subscription" regionSub ())
165165 in
166166 Dups.detect Error.DuplicateDecl $ foldr addDecl effectDict decls
167167
@@ -169,16 +169,16 @@ collectLowerVars (Valid.Module _ _ _ _ _ decls _ _ _ effects) =
169169collectUpperVars :: Valid.Module -> Result i (Map.Map N.Name ())
170170collectUpperVars (Valid.Module _ _ _ _ _ _ unions aliases _ _) =
171171 let
172− addUnion (Valid.Union (A.At _ name) _ ctors) dict =
173− foldr (addCtor name) dict ctors
172+ addUnion (Valid.Union _ _ ctors) dict =
173+ foldr addCtor dict ctors
174174
175− addCtor tipe (A.At region name, _args) dict =
176− Dups.insert name region (Error.UnionCtor tipe) () dict
175+ addCtor (A.At region name, _args) dict =
176+ Dups.insert name region () dict
177177
178178 addAlias (Valid.Alias (A.At region name) _ (A.At _ tipe)) dict =
179179 case tipe of
180180 Src.TRecord _ Nothing ->
181− Dups.insert name region Error.RecordCtor () dict
181+ Dups.insert name region () dict
182182
183183 _ ->
184184 dict
@@ -196,11 +196,11 @@ addTypes (Valid.Module _ _ _ _ _ _ unions aliases _ _) env =
196196 let
197197 aliasToDict alias@(Valid.Alias (A.At region name) _ tipe) =
198198 do args <- checkAliasFreeVars alias
199− return $ Dups.one name region () (Left (Alias region name args tipe))
199+ return $ Dups.one name region (Left (Alias region name args tipe))
200200
201201 unionToDict union@(Valid.Union (A.At region name) _ _) =
202202 do arity <- checkUnionFreeVars union
203− return $ Dups.one name region () (Right arity)
203+ return $ Dups.one name region (Right arity)
204204
205205 combineDicts dicts1 dicts2 =
206206 Dups.union (Dups.unions dicts1) (Dups.unions dicts2)
@@ -323,15 +323,12 @@ checkUnionFreeVars :: Valid.Union -> Result i Int
323323checkUnionFreeVars (Valid.Union (A.At unionRegion name) args ctors) =
324324 let
325325 addUnion (A.At region arg) dict =
326− Dups.insert arg region () region dict
327−
328− toError =
329− Error.DuplicateUnionArg name (map A.toValue args)
326+ Dups.insert arg region region dict
330327
331328 addCtorFreeVars (_, tipes) freeVars =
332329 foldr addFreeVars freeVars tipes
333330 in
334− do boundVars <- Dups.detect toError (foldr addUnion Dups.none args)
331+ do boundVars <- Dups.detect (Error.DuplicateUnionArg name) (foldr addUnion Dups.none args)
335332 let freeVars = foldr addCtorFreeVars Map.empty ctors
336333 case Map.toList (Map.difference freeVars boundVars) of
337334 [] ->
@@ -348,12 +345,9 @@ checkAliasFreeVars :: Valid.Alias -> Result i [N.Name]
348345checkAliasFreeVars (Valid.Alias (A.At aliasRegion name) args tipe) =
349346 let
350347 addAlias (A.At region arg) dict =
351− Dups.insert arg region () region dict
352−
353− toError =
354− Error.DuplicateAliasArg name (map A.toValue args)
348+ Dups.insert arg region region dict
355349 in
356− do boundVars <- Dups.detect toError (foldr addAlias Dups.none args)
350+ do boundVars <- Dups.detect (Error.DuplicateAliasArg name) (foldr addAlias Dups.none args)
357351 let freeVars = addFreeVars tipe Map.empty
358352 let overlap = Map.size (Map.intersection boundVars freeVars)
359353 if Map.size boundVars == overlap && Map.size freeVars == overlap