Safe Haskell | Safe-Inferred |
---|---|
Language | GHC2021 |
Synopsis
- data LogicOp
- data Logical (op :: LogicOp) l r
- class ReifyLogicOp (op :: LogicOp) where
- reifyLogicOpPretty :: String
- reifyLogicOp :: (String -> [a] -> Maybe a) -> Maybe a -> Maybe a -> Maybe a
- data Not p
- rerefineDeMorgans1 :: Refined (Not (Logical Or l r)) a -> Refined (Logical And (Not l) (Not r)) a
- rerefineDeMorgans2 :: Refined (Not (Logical And l r)) a -> Refined (Logical Or (Not l) (Not r)) a
Documentation
Logical binary operator.
No need to disambiguate that these are binary operators, because there's only
one logical unary operator Not
.
data Logical (op :: LogicOp) l r Source #
A logical binary operation on two predicates.
Instances
(Predicate l, Predicate r, ReifyLogicOp op) => Predicate (Logical op l r :: Type) Source # | |
Defined in Rerefined.Predicate.Logical | |
(Refine l a, Refine r a, ReifyLogicOp op) => Refine (Logical op l r :: Type) a Source # | |
Defined in Rerefined.Predicate.Logical |
class ReifyLogicOp (op :: LogicOp) where Source #
Reify a logical binary operator type tag.
reifyLogicOpPretty :: String Source #
reifyLogicOp :: (String -> [a] -> Maybe a) -> Maybe a -> Maybe a -> Maybe a Source #
Instances
ReifyLogicOp 'And Source # | |
Defined in Rerefined.Predicate.Logical | |
ReifyLogicOp 'Nand Source # | |
Defined in Rerefined.Predicate.Logical | |
ReifyLogicOp 'Nor Source # | |
Defined in Rerefined.Predicate.Logical | |
ReifyLogicOp 'Or Source # | |
Defined in Rerefined.Predicate.Logical | |
ReifyLogicOp 'Xnor Source # | |
Defined in Rerefined.Predicate.Logical | |
ReifyLogicOp 'Xor Source # | |
Defined in Rerefined.Predicate.Logical |