blob: ac18dad115299c1bd119e1746369277cf5bedbf5 (
plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
|
{-# OPTIONS_GHC -Woverlapping-patterns #-}
{-# LANGUAGE PatternSynonyms #-}
{-# LANGUAGE ViewPatterns #-}
module Bug (Boolean(F, TooGoodToBeTrue), catchAll) where
data Boolean = F | T
deriving Eq
pattern TooGoodToBeTrue :: Boolean
pattern TooGoodToBeTrue <- ((== T) -> True)
where
TooGoodToBeTrue = T
{-# COMPLETE F, TooGoodToBeTrue #-}
catchAll :: Boolean -> Int
catchAll F = 0
catchAll TooGoodToBeTrue = 1
catchAll F = 2
|