úÎ«Ï      (Extract the name of a constructor, e.g. : or Just. $Extract the types of the constructor' s fields. /Extract the constructors of a type declaration ?Construct a partial isomorphism expression for a constructor,  given the constructor's name. 9Converts a constructor name (starting with an upper-case < letter) into a function name (starting with a lower-case  letter). 3Construct partial isomorphism definitions for all 1 constructors of a datatype, given the datatype's name. < The names of the partial isomorphisms are constructed by = spelling the constructor names with an initial lower-case  letter. 2Constructs a partial isomorphism definition for a 9 constructor, given information about the constructor. : The name of the partial isomorphisms is constructed by < spelling the constructor name with an initial lower-case  letter. !2Constructs a partial isomorphism expression for a 9 constructor, given information about the constructor.    the product type constructor `(,)` is a bifunctor from   $times$  to , so that we have the  bifunctorial map ) which allows two separate isomorphisms + to work on the two components of a tuple. .The mediating arrow for sums constructed with ". 5 This is not a proper partial isomorphism because of #. Nested products associate. Products commute. `()`$ is the unit element for products. Products distribute over sums. ` element x`$ is the partial isomorphism between `()` and the # singleton set which contains just x. For a predicate p, `subset p` is the identity isomorphism 0 restricted to elements matching the predicate.       $      !"#$%&'()*(+,-partial-isomorphisms-0.2"Control.Isomorphism.Partial.UnsafeControl.Isomorphism.Partial.TH(Control.Isomorphism.Partial.Constructors Control.Isomorphism.Partial.Prim#Control.Isomorphism.Partial.DerivedControl.Isomorphism.PartialIsoconstructorIsodefineIsomorphismsnilcons listCasesleftrightnothingjust IsoFunctor<$>inverseapplyunapplyignore***||| associatecommuteunit distributeelementsubsetiteratefoldlconName conFieldsdecConstructorswildcardrename defFromCon isoFromConbase Data.EitherEither Control.Monadmplus