@@ -100,8 +100,8 @@ toEffectDups effects =
100100addTypes :: Valid.Module -> Env.Env -> Result i w Env.Env
101101addTypes (Valid.Module _ _ _ _ _ _ unions aliases _ _) (Env.Env home vs ts cs bs qvs qts qcs) =
102102 let
103− addAliasDups dups (Valid.Alias (A.At region name) _ _) = Dups.insert name region () dups
104− addUnionDups dups (Valid.Union (A.At region name) _ _) = Dups.insert name region () dups
103+ addAliasDups dups (Valid.Alias _ (A.At region name) _ _) = Dups.insert name region () dups
104+ addUnionDups dups (Valid.Union _ (A.At region name) _ _) = Dups.insert name region () dups
105105 typeNameDups =
106106 List.foldl' addUnionDups (List.foldl' addAliasDups Dups.none aliases) unions
107107 in
@@ -111,7 +111,7 @@ addTypes (Valid.Module _ _ _ _ _ _ unions aliases _ _) (Env.Env home vs ts cs bs
111111
112112
113113addUnion :: ModuleName.Canonical -> Env.Exposed Env.Type -> Valid.Union -> Result i w (Env.Exposed Env.Type)
114−addUnion home types union@(Valid.Union (A.At _ name) _ _) =
114+addUnion home types union@(Valid.Union _ (A.At _ name) _ _) =
115115 do arity <- checkUnionFreeVars union
116116 let one = Map.singleton home (Env.Union arity home)
117117 Result.ok $ Map.insert name one types
@@ -133,7 +133,7 @@ addAliases aliases env =
133133addAlias :: Env.Env -> Graph.SCC Valid.Alias -> Result i w Env.Env
134134addAlias env@(Env.Env home vs ts cs bs qvs qts qcs) scc =
135135 case scc of
136− Graph.AcyclicSCC alias@(Valid.Alias (A.At _ name) _ tipe) ->
136+ Graph.AcyclicSCC alias@(Valid.Alias _ (A.At _ name) _ tipe) ->
137137 do args <- checkAliasFreeVars alias
138138 ctype <- Type.canonicalize env tipe
139139 let one = Map.singleton home (Env.Alias (length args) home args ctype)
@@ -143,9 +143,9 @@ addAlias env@(Env.Env home vs ts cs bs qvs qts qcs) scc =
143143 Graph.CyclicSCC [] ->
144144 Result.ok env
145145
146− Graph.CyclicSCC (alias@(Valid.Alias (A.At region name1) _ tipe) : others) ->
146+ Graph.CyclicSCC (alias@(Valid.Alias _ (A.At region name1) _ tipe) : others) ->
147147 do args <- checkAliasFreeVars alias
148− let toName (Valid.Alias (A.At _ name) _ _) = name
148+ let toName (Valid.Alias _ (A.At _ name) _ _) = name
149149 Result.throw (Error.RecursiveAlias region name1 args tipe (map toName others))
150150
151151
@@ -154,7 +154,7 @@ addAlias env@(Env.Env home vs ts cs bs qvs qts qcs) scc =
154154
155155
156156toNode :: Valid.Alias -> (Valid.Alias, N.Name, [N.Name])
157−toNode alias@(Valid.Alias (A.At _ name) _ tipe) =
157+toNode alias@(Valid.Alias _ (A.At _ name) _ tipe) =
158158 ( alias, name, getEdges [] tipe )
159159
160160
@@ -188,7 +188,7 @@ getEdges edges (A.At _ tipe) =
188188
189189
190190checkUnionFreeVars :: Valid.Union -> Result i w Int
191−checkUnionFreeVars (Valid.Union (A.At unionRegion name) args ctors) =
191+checkUnionFreeVars (Valid.Union unionRegion (A.At _ name) args ctors) =
192192 let
193193 addArg (A.At region arg) dict =
194194 Dups.insert arg region region dict
@@ -202,14 +202,13 @@ checkUnionFreeVars (Valid.Union (A.At unionRegion name) args ctors) =
202202 [] ->
203203 Result.ok (length args)
204204
205− unbound ->
206− let toLoc (arg, region) = A.At region arg in
205+ unbound:unbounds ->
207206 Result.throw $
208− Error.TypeVarsUnboundInUnion unionRegion name (map A.toValue args) (map toLoc unbound)
207+ Error.TypeVarsUnboundInUnion unionRegion name (map A.toValue args) unbound unbounds
209208
210209
211210checkAliasFreeVars :: Valid.Alias -> Result i w [N.Name]
212−checkAliasFreeVars (Valid.Alias (A.At aliasRegion name) args tipe) =
211+checkAliasFreeVars (Valid.Alias aliasRegion (A.At _ name) args tipe) =
213212 let
214213 addArg (A.At region arg) dict =
215214 Dups.insert arg region region dict
@@ -294,7 +293,7 @@ type CtorDups = Dups.Dict (Map.Map ModuleName.Canonical Env.Ctor)
294293
295294
296295canonicalizeAlias :: Env.Env -> Valid.Alias -> Result i w ( (N.Name, Can.Alias), CtorDups )
297−canonicalizeAlias env@(Env.Env home _ _ _ _ _ _ _) (Valid.Alias (A.At region name) args tipe) =
296+canonicalizeAlias env@(Env.Env home _ _ _ _ _ _ _) (Valid.Alias _ (A.At region name) args tipe) =
298297 case tipe of
299298 A.At _ (Src.TRecord fields Nothing) ->
300299 do cfields <- traverse (traverse (Type.canonicalize env)) fields
@@ -324,7 +323,7 @@ canonicalizeAlias env@(Env.Env home _ _ _ _ _ _ _) (Valid.Alias (A.At region nam
324323
325324
326325canonicalizeUnion :: Env.Env -> Valid.Union -> Result i w ( (N.Name, Can.Union), CtorDups )
327−canonicalizeUnion env@(Env.Env home _ _ _ _ _ _ _) (Valid.Union (A.At _ name) avars ctors) =
326+canonicalizeUnion env@(Env.Env home _ _ _ _ _ _ _) (Valid.Union _ (A.At _ name) avars ctors) =
328327 do cctors <- Index.indexedTraverse (canonicalizeCtor env) ctors
329328 let vars = map A.toValue avars
330329 let alts = map A.toValue cctors