fun with symbols
Nothing at all on hackage is using <&&> or <||>. (Also, <&&> should short-circuit on failure.)
This commit is contained in:
parent
d6624b6c79
commit
a362c46b70
4 changed files with 15 additions and 20 deletions
|
@ -78,8 +78,8 @@ match a m v = go m
|
|||
where
|
||||
go MAny = True
|
||||
go (MAnd m1 m2) = go m1 && go m2
|
||||
go (MOr m1 m2) = go m1 || go m2
|
||||
go (MNot m1) = not (go m1)
|
||||
go (MOr m1 m2) = go m1 || go m2
|
||||
go (MNot m1) = not $ go m1
|
||||
go (MOp o) = a o v
|
||||
|
||||
{- Runs a monadic Matcher, where Operations are actions in the monad. -}
|
||||
|
@ -87,8 +87,8 @@ matchM :: Monad m => Matcher (v -> m Bool) -> v -> m Bool
|
|||
matchM m v = go m
|
||||
where
|
||||
go MAny = return True
|
||||
go (MAnd m1 m2) = andM (go m1) (go m2)
|
||||
go (MOr m1 m2) = orM (go m1) (go m2)
|
||||
go (MAnd m1 m2) = go m1 <&&> go m2
|
||||
go (MOr m1 m2) = go m1 <||> go m2
|
||||
go (MNot m1) = liftM not (go m1)
|
||||
go (MOp o) = o v
|
||||
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue