Safe Haskell | Safe-Inferred |
---|

# Isomorphisms

data Iso a b

Lightweight type ismomorphisms (a.k.a. invertible functions). If

Iso fw bw :: Iso a b

then `fw`

and `bw`

are supposed to satisfy

fw . bw = id = bw . fw

Iso (a -> b) (b -> a) |

class IsoFunctor f where

Lift an isomorphism between `a`

and `b`

to one between `f a`

and `f b`

.
Like `Functor`

, except we can only map invertible functions (i.e. an
Isomorphisms).

IsoFunctor (RawOptSpec f) | |

IsoFunctor (OptSpec d f a) |