, , , , , , , , . , , , , - , , , .
, BoolLike a...
newtype BoolLike a = BoolLike ((a -> Bool) -> Bool)
... , Bool a -> Bool. Bool (&&) (||) . Applicative ( (->) (a -> Bool)) (&)/flip ($), (a -> Bool) -> Bool " ":
GHCi> ((||) <$> ((&&) <$> ($ 1) <*> ($ 2)) <*> ($ 3)) (`elem` [2])
False
, , , . , :
(<&&>) :: Applicative f => f Bool -> f Bool -> f Bool
x <&&> y = (&&) <$> x <*> y
(<||>) :: Applicative f => f Bool -> f Bool -> f Bool
x <||> y = (||) <$> x <*> y
( , , control-bool.)
, :
GHCi> (($ 1) <&&> ($ 2) <||> ($ 3)) (`elem` [2])
False
contains - , , :
GHCi> (($ [1, 2]) <&&> ($ [2, 3]) <||> ($ [3, 4])) (elem 1)
False
, , contains intersect union Data.List:
GHCi> [1, 2] `intersect` [2, 3] `union` [3, 4] & elem 1
False