n\fj      !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|}~                                  ! " # $ % & ' ( ) * + , - . / 0 1 2 3 4 5 6 7 8 9 : ; < = > ? @ A B C D E F G H I J K L M N O P Q R S T U V W X Y Z [ \ ] ^ _ ` a b c d e f g h i  Safe-Inferred'(=JK Safe-Inferred!"'(246=HJKM           NoneHMT Safe-Inferred !"'(=HJKM#Representable types with parametersRepresentation of aParameters of a/Convert from the datatype to its representation/Convert to the datatype from its representationField f inhabitation with parameters ps! Universe u inhabitation with parameters ps' Field kind"The s parameter should always be *y(FK a) can be replaced by (a :@: []), but the empty application case is often handled differently in generic type classes(Application field)Parameter field*Constant field+ Universe kind"The s parameter should always be *, Sum universe-Product universe.Lifts from the field universe/Trivial universe0Empty universe1Type level application f :$: '[a, b, ...] ~ f a b ... !"#$%&'()*+,-./01 !"#$%&'()*+,-./011+0/.-,'*)(!&%$#"  !&%$#"'*)(+0/.-,1"None (JKT:: derives a N instance for a type, when possible. (for ADT types with parameters of kind *) 23456789: 23456789: 23456789: 23456789: Safe-Inferred '(2468=JK;<=>?@ABCDEFGHIJKLMN;;NMLKJIHGFEDCBA@?>=<;<=>?@ABCDEFGHIJKLMNNone'(123468=JKMYY type class, generalisation of   , , , , etc.If f has a $ instance, and types that appear in f have a Y& instance, it is possible to derive a Y instance for f.&instance MFunctor [] '[a -> a'] '[CoV]:instance MFunctor (->) '[a' -> a, b -> b'] '[ContraV, CoV]Zsee a\ lCodomain (a -> b) CoV ~ b Codomain (a -> b) ContraV ~ a Codomains fs vs ~ Map (Uncurry Codomain) (Zip fs vs)] dDomain (a -> b) CoV ~ a Domain (a -> b) ContraV ~ b Domains fs vs ~ Map (Uncurry Domain) (Zip fs vs)^^ kind used in Y_^ for contravariant parameters`^ for covariant parametersa Proxy-less Z, generalisation of j, , , , etc.SIf f is covariant in all its parameters (its variances are '[CoV, CoV, ..., CoV]) : Fmmap :: HList '[a1 -> b1, ..., an -> bn] -> f a1 ... an -> f b1 ... bnWe.g. when f is contravariant in some parameters (variances of (->) are '[ContraV, CoV]) ?mmap :: HList '[b1 -> a1, a2 -> b2] -> (a1 -> a2) -> (b1 -> b2)$OPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrOPQRSTUVWXYZ[\]^_`a$^`_]\[YZaWXrqponUVmlSTkjiRPQhgfedOcbOPQRSTUVWXYZ[\]^`_abcdefghijklmnopqrNone'()123468=JKM}} type class, generalisation of , , etc."instance MFoldable (,,) '[a, b, c]\mfoldMap (Sum `HCons` (Sum . length) `HCons` const mempty `HCons` HNil) (1, "foobar", 5) = 7~see  (MonoidMap as m ~ Map (\a -> (a -> m)) asXMap elements of each parameter type of a structure to a monoid, and combine the results.Proxy-less version of ~ GmfoldMap :: HList '[a1 -> m, ..., an -> m] -> f :$: '[a1, ..., an] -> mPCombine the elements of a structure when all its parameters are the same monoid.stuvwxyz{|}~stuvwxyz{|}~}~{|yzwxuvststuvwxyz{|}~ None'()123468=JKM Traversable type class, generalisation of , , etc.see  5Codomain (a -> b) ~ b Codomains fs ~ Map Codomain fs .Domain (a -> b) ~ a Domains fs ~ Map Domain fs 0AppMap ((a1 -> b1) : ...) t ~ (a1 -> t b1) : ...Map elements of all type parameters of a structure to an action, evaluate these actions from left to right, and collect the results.Proxy-less version of Generalisation of ,  , etc. Smtraverse :: HList '[a1 -> f b1, ..., an -> f bn] -> f a1 ... an -> t (f b1 ... bn) 3msequence :: f (t a1) ... (t an) -> t (f a1 ... an)&&  None'(123468=JKMH zips n structures together if they have the same shape, or fails (with k) if the shapes do not match. bmzipWith :: HList '[a11 -> ... -> an1 -> b1, ...] -> f a11 ... a1m -> f an1 ... anm -> f b1 ... bmS  .S  D  None(2346=JKM_    !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghi_   ihgfedcba`_^]\[ZYXWVUTSRQPONMLKJIHGFEDCBA@?>=<;:9876543210/.-,+*)('&%$#"! _    !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghil!"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|}~ q r s        } ~   q r s                                                             ! " # $ % & ' ( ) * + , - . / 0 1 2 3 4 5 6 7 8 9 : ; < = > ? @ A B C D E F G H I J K L M N O P Q R S T U V W X Y Z [ \ ] ^ _ ` a b c d e f g h i j k l m n o p q r s t u v w x y z { | } ~    mgeneric-0.0.0.2Data.Nat Data.HList Data.HList.TH Data.MGenericData.MGeneric.TH Data.Unapply Data.MFunctorData.MFoldableData.MTraversable Data.MZipData.MGeneric.Instances Data.FunctorFunctorData.Bifunctor BifunctorData.Functor.Contravariant ContravariantData.Profunctor Profunctorbimap contramapdimap Data.FoldableFoldableData.Bifoldable BifoldableData.Traversable TraversableData.Bitraversable Bitraversabletraverse bitraverse:!!::!:NatNSNZHLookuphlookupHMaphmapMapHNthhnthHListHConsHNil $fHLookupNS: $fHLookupNZ: $fHMapk:fg $fHMapk[]fg $fHNth:NZ $fHNth:NShlistMGenericRepParsfromto ExpandFields ExpandFieldInFieldInAInPInKIn:*:InRInLInFInTField:@:FPFKUn:++::**:UFUTUV:$:viewDataviewConindexnthNat viewAppType typeEncoding encodeField foldBinaryderiveMGenericUnapply$fUnapply(->)(->)(->):$fUnapply(->)SumSum:$fUnapply(->)ProductProduct:$fUnapply(->)FirstFirst:$fUnapply(->)LastLast:"$fUnapply(->)(,,,,,,,,)(,,,,,,,,): $fUnapply(->)(,,,,,,,)(,,,,,,,):$fUnapply(->)(,,,,,,)(,,,,,,):$fUnapply(->)(,,,,,)(,,,,,):$fUnapply(->)(,,,,)(,,,,):$fUnapply(->)(,,,)(,,,):$fUnapply(->)(,,)(,,):$fUnapply(->)(,)(,):$fUnapply*()()[]$fUnapply*OrderingOrdering[]$fUnapply*BoolBool[]$fUnapply(->)EitherEither:$fUnapply(->)MaybeMaybe:$fUnapply(->)[][]: FlipVarianceAdaptFieldFunctionadaptFieldFunctionExpandFieldFunction GFPMFunctormmapGFP GFMFunctormmapGF GMFunctormmapGMFunctormmapPFlip CodomainsDomainsVarianceContraVCoVmmap$fGFMFunctor:@:psvs$fAdaptFieldFunction::psvs$fAdaptFieldFunction::psvs0$fAdaptFieldFunction::psvs1$fAdaptFieldFunction::psvs2$fAdaptFieldFunction::psvs3$fAdaptFieldFunction[][]psvs$fGFPMFunctor[]NS::$fGFPMFunctor[]NS::0$fGFPMFunctor[]NZ::$fGFMFunctorFPfsvs$fGFMFunctorFKfsvs$fGMFunctorUFfsvs$fGMFunctor:**:fsvs$fGMFunctor:++:fsvs$fGMFunctorUTfsvs$fGMFunctorUVfsvsAdaptFieldMonoidadaptFieldMonoid GFPMFoldable mfoldMapGFP GFMFoldable mfoldMapGF GMFoldable mfoldMapGRepeatrepeatId MFoldable mfoldMapP MonoidMapmfoldMapmfold$fGFMFoldable:@:bs$fAdaptFieldMonoid:fs$fAdaptFieldMonoid:fs0$fAdaptFieldMonoid:fs1$fAdaptFieldMonoid[]fs$fGFPMFoldableNS:$fGFPMFoldableNZ:$fGFMFoldableFPas$fGFMFoldableFKas$fGMFoldableUFas$fGMFoldable:**:as$fGMFoldable:++:as$fGMFoldableUTfs$fGMFoldableUVfs $fRepeatm: $fRepeatm[]GFPMTraversable mtraverseGFPGFMTraversable mtraverseGF GMTraversable mtraverseG SequenceMapId sequenceMapId SequenceMapUnAppMap MTraversable mtraversePAppMap mtraverse msequence$fGFMTraversable:@:fst$fAdaptFieldFunction:fst$fAdaptFieldFunction:fst0$fAdaptFieldFunction:fst1$fAdaptFieldFunction[]fst$fGFPMTraversableNS:t$fGFPMTraversableNZ:t$fGFMTraversableFPfst$fGFMTraversableFKfst$fGMTraversableUFfst$fGMTraversable:**:fst$fGMTraversable:++:fst$fGMTraversableUTfst$fGMTraversableUVfst$fSequenceMapId:t$fSequenceMapId[]t $fUnAppMap:t:$fUnAppMap[]t[] GFAMZipWith mzipWithGFA GFPMZipWith mzipWithGFP GFMZipWith mzipWithGF GMZipWithF mzipWithGFF GPiMZipWith mzipWithGPi GMRZipWith mzipWithGR GMLZipWith mzipWithGL GMZipWithFail mzipWithFail GMTZipWith mzipWithGT GMZipWith mzipWithG MakeZipInputs makeZipInputs MakeZipInput makeZipInput ZipWithTypeC ZipInputsC ZipInputCMZipWith mzipWithP MZipWithG mzipWithPGZipWithTypeField ZipWithTypeUn ZipWithType ZipWithType' ZipInputsZipInputLCodomsCodomsDomsCodomDommzipWith$fGFMZipWithn:@:fs$fGFAMZipWithkNSfasfs$fGFAMZipWithkNZfasfs$fAdaptFieldFunctionn:ps$fAdaptFieldFunctionn:ps0$fAdaptFieldFunctionn[]ps$fGFMZipWithnFPfs$fGFPMZipWithNSmfs$fGFPMZipWithNZmfs$fGMZipWithnUFfs$fGMZipWithFNSffs$fGMZipWithFNZffs$fGMZipWithn:**:fs$fGPiMZipWithNSuvfs$fGPiMZipWithNZuvfs$fGMZipWithNS:++:fs$fGMRZipWithNSuvfs$fGMRZipWithNZuvfs$fGMLZipWithNSuvfs$fGMLZipWithNZuvfs$fGMZipWithFailNZufs$fGMZipWithnUTfs$fGMTZipWithNSfs$fGMTZipWithNZfs$fGMZipWithnUVfs$fMakeZipInputsn:$fMakeZipInputsn[]$fMakeZipInputNS(->)$fMakeZipInputNZa$fZipWithTypeCkNSffs(->)$fZipWithTypeCkNZffsMaybe$fZipInputsCn::$fZipInputsCn[][]$fZipInputCNS(->)(->)$fZipInputCNZaMaybe$fMZipWithGkNSfrffs$fMZipWithGkNZfrffs TFCo:R:Rep[]TFCo:R:RepMaybeTFCo:R:RepEitherTFCo:R:RepBoolTFCo:R:RepOrdering TFCo:R:Rep() TFCo:R:Rep(,)TFCo:R:Rep(,,)TFCo:R:Rep(,,,)TFCo:R:Rep(,,,,)TFCo:R:Rep(,,,,,)TFCo:R:Rep(,,,,,,)TFCo:R:Rep(,,,,,,,)TFCo:R:Rep(,,,,,,,,)TFCo:R:RepLastTFCo:R:RepFirstTFCo:R:RepProduct TFCo:R:RepSumTFCo:R:RepEndoTFCo:R:RepConst$fMZipWith(->)nFirst:$fMZipWith(->)nLast:$fMZipWith(->)nSum:$fMZipWith(->)nProduct:$fMZipWith(->)n(,,,,,,,,):$fMZipWith(->)n(,,,,,,,):$fMZipWith(->)n(,,,,,,):$fMZipWith(->)n(,,,,,):$fMZipWith(->)n(,,,,):$fMZipWith(->)n(,,,):$fMZipWith(->)n(,,):$fMZipWith(->)n(,):$fMZipWith*n()[]$fMZipWith*nOrdering[]$fMZipWith*nBool[]$fMZipWith(->)nEither:$fMZipWith(->)nMaybe:$fMZipWith(->)n[]:$fMTraversable(->)Sum:t$fMTraversable(->)Product:t$fMTraversable(->)First:t$fMTraversable(->)Last:t$fMTraversable(->)(,,,,,,,,):t$fMTraversable(->)(,,,,,,,):t$fMTraversable(->)(,,,,,,):t$fMTraversable(->)(,,,,,):t$fMTraversable(->)(,,,,):t$fMTraversable(->)(,,,):t$fMTraversable(->)(,,):t$fMTraversable(->)(,):t$fMTraversable*()[]t$fMTraversable*Ordering[]t$fMTraversable*Bool[]t$fMTraversable(->)Either:t$fMTraversable(->)Maybe:t$fMTraversable(->)[]:t$fMFoldable(->)Identity:$fMFoldable(->)Sum:$fMFoldable(->)Product:$fMFoldable(->)First:$fMFoldable(->)Last:$fMFoldable(->)(,,,,,,,,):$fMFoldable(->)(,,,,,,,):$fMFoldable(->)(,,,,,,):$fMFoldable(->)(,,,,,):$fMFoldable(->)(,,,,):$fMFoldable(->)(,,,):$fMFoldable(->)(,,):$fMFoldable(->)(,):$fMFoldable*()[]$fMFoldable*Ordering[]$fMFoldable*Bool[]$fMFoldable(->)Either:$fMFoldable(->)Maybe:$fMFoldable(->)[]:$fMFunctor(->)(->)::$fMFunctor(->)Sum::$fMFunctor(->)Product::$fMFunctor(->)First::$fMFunctor(->)Last::$fMFunctor(->)(,,,,,,,,)::$fMFunctor(->)(,,,,,,,)::$fMFunctor(->)(,,,,,,)::$fMFunctor(->)(,,,,,)::$fMFunctor(->)(,,,,)::$fMFunctor(->)(,,,)::$fMFunctor(->)(,,)::$fMFunctor(->)(,)::$fMFunctor*()[][]$fMFunctor*Ordering[][]$fMFunctor*Bool[][]$fMFunctor(->)Either::$fMFunctor(->)Maybe::$fMFunctor(->)[]::TFCo:R:RepIdentitybaseGHC.Basefmap Data.MaybeNothing