Safe Haskell | Safe-Inferred |
---|---|
Language | GHC2021 |
Synopsis
- data And l r
- rerefineAndL :: Refined (And l r) a -> Refined l a
- rerefineAndR :: Refined (And l r) a -> Refined r a
- eliminateAndLR :: Refined (And l r) a -> Refined r (Refined l a)
- eliminateAndRL :: Refined (And l r) a -> Refined l (Refined r a)
- introduceAndLR :: Refined r (Refined l a) -> Refined (And l r) a
- introduceAndRL :: Refined l (Refined r a) -> Refined (And l r) a
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 |
rerefineAndL :: Refined (And l r) a -> Refined l a Source #
Take just the left predicate from an And
.
rerefineAndR :: Refined (And l r) a -> Refined r a Source #
Take just the right predicate from an And
.
eliminateAndLR :: Refined (And l r) a -> Refined r (Refined l a) Source #
Eliminate an And
by applying the left predicate, then the right.
eliminateAndRL :: Refined (And l r) a -> Refined l (Refined r a) Source #
Eliminate an And
by applying the right predicate, then the left.