Safe Haskell | None |
---|---|
Language | Haskell2010 |
Combinator.Booly
Description
- class Andlike a where
- class Orlike a where
- class Xorlike a where
- class Falsifier a where
- (>&>) :: Andlike a => a -> a -> a
- (>|>) :: Orlike a => a -> a -> a
- andLast :: (Andlike a, Falsifier a, Foldable t) => t a -> a
- andHead :: (Andlike a, Falsifier a, Foldable t) => t a -> a
- andMappend :: (Andlike a, Monoid a) => a -> a -> a
- andMconcat :: (Andlike a, Falsifier a, Monoid a, Foldable t) => t a -> a
- isFalse :: (Eq a, Falsifier a) => a -> Bool
- isTrue :: (Eq a, Falsifier a) => a -> Bool
- boolF :: (Eq b, Falsifier b) => a -> a -> b -> a
- voidF :: Falsifier a => a -> a
- whenF :: (Eq a, Eq b, Falsifier a, Falsifier b) => a -> b -> b
- unlessF :: (Eq a, Eq b, Falsifier a, Falsifier b) => a -> b -> b
Documentation
Boolean-like logic operation >&>
that acts like AND for any
boolean-representable datatypes, e.g. '[]' or Maybe
.
Associativity
(a >&> b) >&> c == a >&> (b >&> c)
Absorbing element / truth table
false >&> false == false
false >&> b == false
a >&> false == false
a >&> b == b
Methods
(<&<) :: a -> a -> a infixl 7 #
Andlike operator, returns the rightmost argument on success, i.e.
if no false
are present.
(<&<) :: (Applicative f, f b ~ a) => a -> a -> a infixl 7 #
Andlike operator, returns the rightmost argument on success, i.e.
if no false
are present.
Instances
Andlike Bool # | |
Andlike () # | |
Andlike ByteString # | |
Andlike ByteString # | |
Andlike Text # | |
Andlike [a] # | |
Andlike (Maybe a) # | |
Andlike (Option a) # | |
Andlike (Vector a) # | |
Andlike (Either a b) # | |
(Andlike a, Andlike b) => Andlike (a, b) # | |
Andlike (Parser i a) # | |
Ord k => Andlike (Map k v) # | |
(Andlike a, Andlike b, Andlike c) => Andlike (a, b, c) # | |
(Andlike a, Andlike b, Andlike c, Andlike d) => Andlike (a, b, c, d) # | |
Boolean-like logic operation <|<
that acts like OR for any
boolean-representable datatypes, e.g. '[]' or Maybe
. It is basically
'Control.Applicative.(|)' with a list instance that doesn't append.
Associativity
(a <|< b) <|< c == a <|< (b <|< c)
Absorbing element / truth table
false <|< false == false
false <|< b == b
a <|< false == a
a <|< b == a
Methods
(<|<) :: a -> a -> a infixl 5 #
Orlike operator, returns the leftmost true-like argument,
otherwise the rightmost true-like argument, or finally false
.
(<|<) :: (Alternative f, f b ~ a) => a -> a -> a infixl 5 #
Orlike operator, returns the leftmost true-like argument,
otherwise the rightmost true-like argument, or finally false
.
Instances
Orlike Bool # | |
Orlike () # | |
Orlike ByteString # | |
Orlike ByteString # | |
Orlike Text # | |
Orlike [a] # | |
Orlike (Maybe a) # | |
Orlike (Option a) # | |
Orlike (Vector a) # | |
Orlike (Either a b) # | |
(Orlike a, Orlike b) => Orlike (a, b) # | |
Orlike (Parser i a) # | |
Ord k => Orlike (Map k v) # | |
(Orlike a, Orlike b, Orlike c) => Orlike (a, b, c) # | |
(Orlike a, Orlike b, Orlike c, Orlike d) => Orlike (a, b, c, d) # | |
Boolean-like logic operation <^>
that acts like XOR for any
boolean-representable datatypes, e.g. '[]' or Maybe
.
Absorbing element / truth table
false <^> false == false
false <^> b == b
a <^> false == a
a <^> b == false
Minimal complete definition
(>&>) :: Andlike a => a -> a -> a infixr 7 #
Flipped version of <&<
. Returns the leftmost argument on both
success or failure.
(>|>) :: Orlike a => a -> a -> a infixr 5 #
Flipped version of <|<
. Returns the leftmost argument on both
success or failure.
andLast :: (Andlike a, Falsifier a, Foldable t) => t a -> a #
Returns the last element on success of all values.
andHead :: (Andlike a, Falsifier a, Foldable t) => t a -> a #
Returns the first element on success of all values.
andMappend :: (Andlike a, Monoid a) => a -> a -> a #
Monadic append with the annihilating operator guarding each argument. Returns the mappended result on success.
andMconcat :: (Andlike a, Falsifier a, Monoid a, Foldable t) => t a -> a #
Monadic concatenation with the annihilating operator guarding each argument.