@@ -209,25 +209,25 @@ checkExpression tagDict (A.A region expression) =
209209
210210checkPatterns :: TagDict -> Region.Region -> Error.Origin -> [Pattern.Canonical] -> Result wrn ()
211211checkPatterns tagDict region origin patterns =
212− checkPatternsHelp tagDict region origin (Set.singleton Anything) patterns
212+ checkPatternsHelp tagDict region origin [Anything] patterns
213213
214214
215215checkPatternsHelp
216216 :: TagDict
217217 -> Region.Region
218218 -> Error.Origin
219− -> Set.Set Pattern
219+ -> [Pattern]
220220 -> [Pattern.Canonical]
221221 -> Result wrn ()
222222checkPatternsHelp tagDict region origin unhandled patterns =
223− case patterns of
224− [] ->
225− if Set.size unhandled == 0 then
226− return ()
227− else
228− Result.throw region (Error.Incomplete origin unhandled)
223+ case (unhandled, patterns) of
224+ ([], []) ->
225+ return ()
226+
227+ (_:_, []) ->
228+ Result.throw region (Error.Incomplete origin unhandled)
229229
230− pattern@(A.A localRegion _) : remainingPatterns ->
230+ (_, pattern@(A.A localRegion _) : remainingPatterns) ->
231231 do newUnhandled <- filterPatterns tagDict localRegion pattern unhandled
232232 checkPatternsHelp tagDict region origin newUnhandled remainingPatterns
233233
@@ -236,8 +236,8 @@ filterPatterns
236236 :: TagDict
237237 -> Region.Region
238238 -> Pattern.Canonical
239− -> Set.Set Pattern
240− -> Result wrn (Set.Set Pattern)
239+ -> [Pattern]
240+ -> Result wrn [Pattern]
241241filterPatterns tagDict region pattern unhandled =
242242 let
243243 nitPattern =
@@ -252,7 +252,6 @@ filterPatterns tagDict region pattern unhandled =
252252 else
253253 do let complementPatterns = complement tagDict nitPattern
254254 return $
255− Set.fromList $
256255 concatMap
257256 (\p -> Maybe.mapMaybe (intersection p) complementPatterns)
258257 unhandled