| 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
class Andlike a where Source #
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 Source #
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 Source #
Andlike operator, returns the rightmost argument on success, i.e.
if no false are present.
Instances
| Andlike Bool Source # | |
| Andlike () Source # | |
| Andlike ByteString Source # | |
| Andlike ByteString Source # | |
| Andlike Text Source # | |
| Andlike [a] Source # | |
| Andlike (Maybe a) Source # | |
| Andlike (Option a) Source # | |
| Andlike (Vector a) Source # | |
| Andlike (Either a b) Source # | |
| (Andlike a, Andlike b) => Andlike (a, b) Source # | |
| Andlike (Parser i a) Source # | |
| Ord k => Andlike (Map k v) Source # | |
| (Andlike a, Andlike b, Andlike c) => Andlike (a, b, c) Source # | |
| (Andlike a, Andlike b, Andlike c, Andlike d) => Andlike (a, b, c, d) Source # | |
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 Source #
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 Source #
Orlike operator, returns the leftmost true-like argument,
otherwise the rightmost true-like argument, or finally false.
Instances
| Orlike Bool Source # | |
| Orlike () Source # | |
| Orlike ByteString Source # | |
| Orlike ByteString Source # | |
| Orlike Text Source # | |
| Orlike [a] Source # | |
| Orlike (Maybe a) Source # | |
| Orlike (Option a) Source # | |
| Orlike (Vector a) Source # | |
| Orlike (Either a b) Source # | |
| (Orlike a, Orlike b) => Orlike (a, b) Source # | |
| Orlike (Parser i a) Source # | |
| Ord k => Orlike (Map k v) Source # | |
| (Orlike a, Orlike b, Orlike c) => Orlike (a, b, c) Source # | |
| (Orlike a, Orlike b, Orlike c, Orlike d) => Orlike (a, b, c, d) Source # | |
class Xorlike a where Source #
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
class Falsifier a where Source #
Instances
| Falsifier Bool Source # | |
| Falsifier () Source # | |
| Falsifier ByteString Source # | |
| Falsifier ByteString Source # | |
| Falsifier Text Source # | |
| Falsifier [a] Source # | |
| Falsifier (Maybe a) Source # | |
| Falsifier (Option a) Source # | |
| Falsifier (Vector a) Source # | |
| Falsifier (Parser i a) Source # | |
| Ord k => Falsifier (Map k v) Source # | |
(>&>) :: Andlike a => a -> a -> a infixr 7 Source #
Flipped version of <&<. Returns the leftmost argument on both
success or failure.
(>|>) :: Orlike a => a -> a -> a infixr 5 Source #
Flipped version of <|<. Returns the leftmost argument on both
success or failure.
andLast :: (Andlike a, Falsifier a, Foldable t) => t a -> a Source #
Returns the last element on success of all values.
andHead :: (Andlike a, Falsifier a, Foldable t) => t a -> a Source #
Returns the first element on success of all values.
andMappend :: (Andlike a, Monoid a) => a -> a -> a Source #
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 Source #
Monadic concatenation with the annihilating operator guarding each argument.