@@ -21,6 +21,7 @@ import qualified Canonicalize.Environment.Dups as Dups
2121import qualified Canonicalize.Result as Result
2222import qualified Canonicalize.Type as Type
2323import qualified Data.Bag as Bag
24+import qualified Data.Index as Index
2425import qualified Elm.Name as N
2526import qualified Reporting.Annotation as A
2627import qualified Reporting.Error.Canonicalize as Error
@@ -86,10 +87,10 @@ addPatterns unions (Env.Env home vars types patterns binops) =
8687 Map.fromList $ concatMap toPatterns (Map.toList unions)
8788
8889 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
9091
91− ctorToPattern tipe tvars alts (name, args) =
92− ( name, Env.Pattern home tipe tvars alts args )
92+ ctorToPattern tipe tvars alts index (name, args) =
93+ ( name, Env.Pattern home tipe tvars alts index args )
9394 in
9495 let
9596 newPatterns =
@@ -378,8 +379,11 @@ addFreeVars (A.At region tipe) freeVars =
378379 Src.TType _ _ _ args ->
379380 foldr addFreeVars freeVars args
380381
381− Src.TRecord fields ext ->
382− foldr addFreeVars (maybe id addFreeVars ext freeVars) (map snd fields)
382+ Src.TRecord fields Nothing ->
383+ foldr addFreeVars freeVars (map snd fields)
384+
385+ Src.TRecord fields (Just ext) ->
386+ foldr addFreeVars (addFreeVars ext freeVars) (map snd fields)
383387
384388 Src.TUnit ->
385389 freeVars