Constructor-destructor isomorphisms for some common datatypes.
- unit :: Iso t (() :- t)
- nothing :: Iso t (Maybe a :- t)
- just :: Iso (a :- t) (Maybe a :- t)
- maybe :: Iso t (a :- t) -> Iso t (Maybe a :- t)
- nil :: Iso t ([a] :- t)
- cons :: Iso (a :- ([a] :- t)) ([a] :- t)
- left :: Iso (a :- t) (Either a b :- t)
- right :: Iso (b :- t) (Either a b :- t)
- either :: Iso t1 (a :- t2) -> Iso t1 (b :- t2) -> Iso t1 (Either a b :- t2)
- false :: Iso t (Bool :- t)
- true :: Iso t (Bool :- t)
- bool :: Iso t (Bool :- t)