@@ -21,6 +21,7 @@ import qualified Canonicalize.Environment.Dups as Dups
21import qualified Canonicalize.Result as Result
21import qualified Canonicalize.Result as Result
22import qualified Canonicalize.Type as Type
22import qualified Canonicalize.Type as Type
23import qualified Data.Bag as Bag
23import qualified Data.Bag as Bag
24+import qualified Data.Index as Index
24import qualified Elm.Name as N
25import qualified Elm.Name as N
25import qualified Reporting.Annotation as A
26import qualified Reporting.Annotation as A
26import qualified Reporting.Error.Canonicalize as Error
27import qualified Reporting.Error.Canonicalize as Error
@@ -86,10 +87,10 @@ addPatterns unions (Env.Env home vars types patterns binops) =
86 Map.fromList $ concatMap toPatterns (Map.toList unions)
87 Map.fromList $ concatMap toPatterns (Map.toList unions)
88 toPatterns (tipe, Can.Union tvars ctors) =
89 toPatterns (tipe, Can.Union tvars ctors) =
89− map (ctorToPattern tipe tvars (Can.ctorsToAlts ctors)) ctors
90+ Index.indexedMap (ctorToPattern tipe tvars (Can.ctorsToAlts ctors)) ctors
91− ctorToPattern tipe tvars alts (name, args) =
92+ ctorToPattern tipe tvars alts index (name, args) =
92− ( name, Env.Pattern home tipe tvars alts args )
93+ ( name, Env.Pattern home tipe tvars alts index args )
95 newPatterns =
96 newPatterns =
@@ -378,8 +379,11 @@ addFreeVars (A.At region tipe) freeVars =
378 Src.TType _ _ _ args ->
379 Src.TType _ _ _ args ->
379 foldr addFreeVars freeVars args
380 foldr addFreeVars freeVars args
381− Src.TRecord fields ext ->
382+ Src.TRecord fields Nothing ->
383+ foldr addFreeVars freeVars (map snd fields)
385+ Src.TRecord fields (Just ext) ->
382− foldr addFreeVars (maybe id addFreeVars ext freeVars) (map snd fields)
386+ foldr addFreeVars (addFreeVars ext freeVars) (map snd fields)
384 Src.TUnit ->
388 Src.TUnit ->