@@ -209,25 +209,25 @@ checkExpression tagDict (A.A region expression) =
210checkPatterns :: TagDict -> Region.Region -> Error.Origin -> [Pattern.Canonical] -> Result wrn ()
210checkPatterns :: TagDict -> Region.Region -> Error.Origin -> [Pattern.Canonical] -> Result wrn ()
211checkPatterns tagDict region origin patterns =
211checkPatterns tagDict region origin patterns =
212− checkPatternsHelp tagDict region origin (Set.singleton Anything) patterns
212+ checkPatternsHelp tagDict region origin [Anything] patterns
215checkPatternsHelp
215checkPatternsHelp
216 :: TagDict
216 :: TagDict
217 -> Region.Region
217 -> Region.Region
218 -> Error.Origin
218 -> Error.Origin
219− -> Set.Set Pattern
219+ -> [Pattern]
220 -> [Pattern.Canonical]
220 -> [Pattern.Canonical]
221 -> Result wrn ()
221 -> Result wrn ()
222checkPatternsHelp tagDict region origin unhandled patterns =
222checkPatternsHelp tagDict region origin unhandled patterns =
223− case patterns of
223+ case (unhandled, patterns) of
224− [] ->
224+ ([], []) ->
225− if Set.size unhandled == 0 then
226− return ()
225+ return ()
228− Result.throw region (Error.Incomplete origin unhandled)
228+ Result.throw region (Error.Incomplete origin unhandled)
230− pattern@(A.A localRegion _) : remainingPatterns ->
230+ (_, pattern@(A.A localRegion _) : remainingPatterns) ->
231 do newUnhandled <- filterPatterns tagDict localRegion pattern unhandled
231 do newUnhandled <- filterPatterns tagDict localRegion pattern unhandled
232 checkPatternsHelp tagDict region origin newUnhandled remainingPatterns
232 checkPatternsHelp tagDict region origin newUnhandled remainingPatterns
@@ -236,8 +236,8 @@ filterPatterns
236 :: TagDict
236 :: TagDict
237 -> Region.Region
237 -> Region.Region
238 -> Pattern.Canonical
238 -> Pattern.Canonical
239− -> Set.Set Pattern
239+ -> [Pattern]
240− -> Result wrn (Set.Set Pattern)
240+ -> Result wrn [Pattern]
241filterPatterns tagDict region pattern unhandled =
241filterPatterns tagDict region pattern unhandled =
243 nitPattern =
243 nitPattern =
@@ -252,7 +252,6 @@ filterPatterns tagDict region pattern unhandled =
253 do let complementPatterns = complement tagDict nitPattern
253 do let complementPatterns = complement tagDict nitPattern
256 concatMap
255 concatMap
257 (\p -> Maybe.mapMaybe (intersection p) complementPatterns)
256 (\p -> Maybe.mapMaybe (intersection p) complementPatterns)
258 unhandled
257 unhandled