Safe Haskell | None |
---|---|
Language | Haskell2010 |
This library is based on the notion of a predicate transformer, the below
type PT a b
, which is a function from a
to predicates on b
.
They act as a sort of compositional "matcher language".
Composing these predicate transformers is meant to be analogous to composing optics
and there are utilities for using predicate transformers with (lens
-style) optics.
Synopsis
- type Pred a = a -> Bool
- type PT a b = Pred a -> Pred b
- function :: (b -> a) -> PT a b
- match :: APrism s t a b -> PT a s
- getter :: Getting a s a -> PT a s
- nay :: PT a a
- just :: PT a (Maybe a)
- left :: PT e (Either e a)
- right :: PT a (Either e a)
- endingWith :: PT a [a]
- startingWith :: PT a [a]
- only :: PT a [a]
- dist :: [Pred a] -> Pred [a]
- distF :: (Eq (f ()), Functor f, Foldable f) => f (Pred a) -> Pred (f a)
- (==>) :: a -> b -> (a, b)
- traced :: Show a => PT a a
Documentation
endingWith :: PT a [a] Source #
Operate on the last value in a list, or fail if it's not present.
startingWith :: PT a [a] Source #
Operate on the first value in a list, or fail if it's not present.
dist :: [Pred a] -> Pred [a] Source #
Given a list of predicates and a list of values, ensure that each predicate holds for each respective value. Fails if the two lists have different lengths.