Safe Haskell | None |
---|
- idIso :: Iso a a
- inverse :: Iso alpha beta -> Iso beta alpha
- apply :: Iso alpha beta -> alpha -> Maybe beta
- unapply :: Iso alpha beta -> beta -> Maybe alpha
- class IsoFunctor f where
- ignore :: alpha -> Iso alpha ()
- (***) :: Iso alpha beta -> Iso gamma delta -> Iso (alpha, gamma) (beta, delta)
- (|||) :: Iso alpha gamma -> Iso beta gamma -> Iso (Either alpha beta) gamma
- associate :: Iso (alpha, (beta, gamma)) ((alpha, beta), gamma)
- commute :: Iso (alpha, beta) (beta, alpha)
- unit :: Iso alpha (alpha, ())
- element :: (Show alpha, Eq alpha) => alpha -> Iso () alpha
- subset :: Show alpha => (alpha -> Bool) -> Iso alpha alpha
- namedSubset :: Show alpha => String -> (alpha -> Bool) -> Iso alpha alpha
- iterateIso :: Iso alpha alpha -> Iso alpha alpha
- distribute :: Iso (alpha, Either beta gamma) (Either (alpha, beta) (alpha, gamma))
- readShowIso :: (Read a, Show a) => Iso String a
- readShowTextIso :: (Read a, Show a) => Iso Text a
- textStringIso :: Iso Text String
- lazyStrictTextIso :: Iso Text Text
- listMapIso :: Ord a => Iso [(a, b)] (Map a b)
- maybeUnitBoolIso :: Iso (Maybe ()) Bool
Documentation
class IsoFunctor f whereSource
element :: (Show alpha, Eq alpha) => alpha -> Iso () alphaSource
`element x` is the partial isomorphism between `()` and the
singleton set which contains just x
.
subset :: Show alpha => (alpha -> Bool) -> Iso alpha alphaSource
For a predicate p
, `subset p` is the identity isomorphism
restricted to elements matching the predicate.
iterateIso :: Iso alpha alpha -> Iso alpha alphaSource
distribute :: Iso (alpha, Either beta gamma) (Either (alpha, beta) (alpha, gamma))Source
Products distribute over sums.
listMapIso :: Ord a => Iso [(a, b)] (Map a b)Source
maybeUnitBoolIso :: Iso (Maybe ()) BoolSource