Safe Haskell | Safe-Inferred |
---|---|
Language | GHC2021 |
Logical predicates.
Pretty predicates use infix propositional operators. This is chosen for consistency. I'm not really sure which I prefer over all, perhaps best would be to mix and match. Please let the maintainers know if you have a better idea.
Documentation
Logical conjunction. Also AND logic gate.
Instances
(Predicate l, Predicate r) => Predicate (And l r :: Type) Source # | Precedence of 3 (matching |
Defined in Rerefined.Predicate.Logical.And type PredicateName d (And l r) :: Symbol Source # | |
(Refine l a, Refine r a, KnownPredicateName (And l r)) => Refine (And l r :: Type) a Source # | |
Defined in Rerefined.Predicate.Logical.And | |
type PredicateName d (And l r :: Type) Source # | |
Defined in Rerefined.Predicate.Logical.And |
Logical biconditional ("if and only if"). Also the XNOR logic gate, or equivalence (loosely).
Instances
(Predicate l, Predicate r) => Predicate (Iff l r :: Type) Source # | Precedence of 4 (matching |
Defined in Rerefined.Predicate.Logical.Iff type PredicateName d (Iff l r) :: Symbol Source # | |
(Refine l a, Refine r a, KnownPredicateName (Iff l r)) => Refine (Iff l r :: Type) a Source # | |
Defined in Rerefined.Predicate.Logical.Iff | |
type PredicateName d (Iff l r :: Type) Source # | |
Defined in Rerefined.Predicate.Logical.Iff |
Logical implication. "If l then r".
Instances
(Predicate l, Predicate r) => Predicate (If l r :: Type) Source # | Precedence of 4 (matching |
Defined in Rerefined.Predicate.Logical.If type PredicateName d (If l r) :: Symbol Source # | |
(Refine l a, Refine r a, KnownPredicateName (If l r)) => Refine (If l r :: Type) a Source # | |
Defined in Rerefined.Predicate.Logical.If | |
type PredicateName d (If l r :: Type) Source # | |
Defined in Rerefined.Predicate.Logical.If |
NAND logic gate. Also called the Sheffer stroke, or non-conjunction.
Instances
(Predicate l, Predicate r) => Predicate (Nand l r :: Type) Source # | Precedence of 3 (matching |
Defined in Rerefined.Predicate.Logical.Nand type PredicateName d (Nand l r) :: Symbol Source # | |
(Refine l a, Refine r a, KnownPredicateName (Nand l r)) => Refine (Nand l r :: Type) a Source # | |
Defined in Rerefined.Predicate.Logical.Nand | |
type PredicateName d (Nand l r :: Type) Source # | |
Defined in Rerefined.Predicate.Logical.Nand |
NOR logic gate. Also called non-disjunction, or joint denial.
Instances
(Predicate l, Predicate r) => Predicate (Nor l r :: Type) Source # | Precedence of 2 (matching |
Defined in Rerefined.Predicate.Logical.Nor type PredicateName d (Nor l r) :: Symbol Source # | |
(Refine l a, Refine r a, KnownPredicateName (Nor l r)) => Refine (Nor l r :: Type) a Source # | |
Defined in Rerefined.Predicate.Logical.Nor | |
type PredicateName d (Nor l r :: Type) Source # | |
Defined in Rerefined.Predicate.Logical.Nor |
Logical negation. Also NOT logic gate, or logical complement.
Instances
Predicate p => Predicate (Not p :: Type) Source # | Precedence of 9 (one below function application). |
Defined in Rerefined.Predicate.Logical.Not type PredicateName d (Not p) :: Symbol Source # | |
(Refine p a, KnownPredicateName (Not p)) => Refine (Not p :: Type) a Source # | |
Defined in Rerefined.Predicate.Logical.Not | |
type PredicateName d (Not p :: Type) Source # | |
Defined in Rerefined.Predicate.Logical.Not |
Logical disjunction. Also OR logic gate.
Instances
Logical exclusive disjunction. Also XOR logic gate.
Instances
(Predicate l, Predicate r) => Predicate (Xor l r :: Type) Source # | Precedence of 4 (matching |
Defined in Rerefined.Predicate.Logical.Xor type PredicateName d (Xor l r) :: Symbol Source # | |
(Refine l a, Refine r a, KnownPredicateName (Xor l r)) => Refine (Xor l r :: Type) a Source # | |
Defined in Rerefined.Predicate.Logical.Xor | |
type PredicateName d (Xor l r :: Type) Source # | |
Defined in Rerefined.Predicate.Logical.Xor |