| Safe Haskell | None | 
|---|
Control.Isomorphism.Partial.Prim
- 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
Instances
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