Skip to content

Commit 57783f9

Browse files
committed
remove failB & passB
1 parent e372bf5 commit 57783f9

File tree

1 file changed

+13
-23
lines changed

1 file changed

+13
-23
lines changed

src/Control/Lens/Grammar/Boole.hs

Lines changed: 13 additions & 23 deletions
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
module Control.Lens.Grammar.Boole
22
( BooleanAlgebra (..)
3-
, fromBool, andB, orB, allB, anyB
3+
, andB, orB, allB, anyB
44
, TokenTest (..)
55
, TokenAlgebra (..)
66
) where
@@ -18,15 +18,10 @@ import GHC.Generics
1818

1919
class BooleanAlgebra b where
2020

21-
failB :: b
22-
default failB
23-
:: (b ~ f bool, BooleanAlgebra bool, Applicative f) => b
24-
failB = pure failB
25-
26-
passB :: b
27-
default passB
28-
:: (b ~ f bool, BooleanAlgebra bool, Applicative f) => b
29-
passB = pure passB
21+
fromBool :: Bool -> b
22+
default fromBool
23+
:: (b ~ f bool, BooleanAlgebra bool, Applicative f) => Bool -> b
24+
fromBool = pure . fromBool
3025

3126
notB :: b -> b
3227
default notB
@@ -43,22 +38,17 @@ class BooleanAlgebra b where
4338
:: (b ~ f bool, BooleanAlgebra bool, Applicative f) => b -> b -> b
4439
(>&&<) = liftA2 (>&&<)
4540

46-
fromBool :: BooleanAlgebra b => Bool -> b
47-
fromBool = \case
48-
True -> passB
49-
False -> failB
50-
5141
andB :: (Foldable f, BooleanAlgebra b) => f b -> b
52-
andB = foldl' (>&&<) passB
42+
andB = foldl' (>&&<) (fromBool True)
5343

5444
orB :: (Foldable f, BooleanAlgebra b) => f b -> b
55-
orB = foldl' (>||<) failB
45+
orB = foldl' (>||<) (fromBool False)
5646

5747
allB :: (Foldable f, BooleanAlgebra b) => (a -> b) -> f a -> b
58-
allB f = foldl' (\b a -> b >&&< f a) passB
48+
allB f = foldl' (\b a -> b >&&< f a) (fromBool True)
5949

6050
anyB :: (Foldable f, BooleanAlgebra b) => (a -> b) -> f a -> b
61-
anyB f = foldl' (\b a -> b >||< f a) failB
51+
anyB f = foldl' (\b a -> b >||< f a) (fromBool False)
6252

6353
newtype TokenTest token = TokenTest (RegExam token (TokenTest token))
6454

@@ -89,8 +79,7 @@ deriving stock instance
8979
(Categorized token, Show token, Show (Categorize token))
9080
=> Show (TokenTest token)
9181
instance BooleanAlgebra Bool where
92-
failB = False
93-
passB = True
82+
fromBool = id
9483
notB = not
9584
(>&&<) = (&&)
9685
(>||<) = (||)
@@ -113,8 +102,9 @@ instance Categorized token
113102
RegExam (Alternate (tokenClass exam1) (tokenClass exam2))
114103
instance Categorized token
115104
=> BooleanAlgebra (RegExam token (TokenTest token)) where
116-
failB = Fail
117-
passB = Pass
105+
fromBool = \case
106+
False -> Fail
107+
True -> Pass
118108
notB Fail = Pass
119109
notB Pass = Fail
120110
notB (Alternate (TokenTest x) (TokenTest y)) = x >&&< y

0 commit comments

Comments
 (0)