!"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|}~                  Safe-Inferred       see LANGUAGE pragmas (... GHC) experimentalnicolas.frisby@gmail.com Safe-Inferred  Type-level fmap for Maybe.  Type-level mplus for Maybe. "Returns a type-level boolean from  type-booleans.     see LANGUAGE pragmas (... GHC) experimentalnicolas.frisby@gmail.comNone    Safe-Inferred !" !"#$%&' !" !" !"see LANGUAGE pragmas (... GHC) experimentalnicolas.frisby@gmail.comNoneHConvenient synonym. type Equal a b = ( ( a b) IA polykinded proxy. K$Template Haskell derivation for the  type-spine and  type-cereal  packages' ) and *& type families, which support generic  instances of Compare. M#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRS+,-./0123456789:;<=>?@ABCDEF7 #$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRS7IJHKLEGFBDC@?A><=9;:M786N#$%345O12/0-.P*,+()QR&'S 9#$%&'()*,+-./0123456789;:<=>?@ABDCEGFHIJKLMNOPQRS+,-./0123456789:;<=>?@ABCDEFsee LANGUAGE pragmas (... GHC) experimentalnicolas.frisby@gmail.comNone T&We avoid empty sums with a type-level Maybe.  DistMaybePlus performs , sum union on lifted sums, only introducing :+: when both arguments are  Justs. ZDConverts between a fields type and its product-of-fields structure. ]KA mapping to the structural representation of a fields type: just products ? of fields, no sums -- fields types have just one constructor. d'An occurrence of the zeroth parameter. f$An occurrence of the 1st parameter. h Sum union. kThe singleton sum. lKThe empty sum. Used as an error type instead of a represention type, since N data types with no constructors are uninteresting from a generic programming  perspective -- there'(s just not much to be done generically. mProduct union. oThe empty product. qWrapper around productus BTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|}~GHIJKL?TUVWXYZ[\]^_`abcdefghijklmnopqrstuMNOvwxyz{|}~1TUVWXYZ[\]^_`abcdefghjiklmnopqrsutvwxyz{|}~GHIJKLsee LANGUAGE pragmas (... GHC) experimentalnicolas.frisby@gmail.comNoneThe DCs3 of a data type is sum of all of its fields types. JAny fields type can be further represented as a product-of-fields and can / be injected back into the original data type. 0Maps a type to its mutually recursive siblings. Codomain@ is the data type that contains the constructor that the fields  type dcA represents. It can also be applied to sums of fields types, in ( which case it just uses the left-most. Tag? returns a simulated type-level string that is the name of the  constructor that the dc fields type represents. None type instance > SC_SumInfo t =  tPQRSTUVWXYZPQRSTUVWXYZsee LANGUAGE pragmas (... GHC) experimentalnicolas.frisby@gmail.comNone![\]^_`abcdefghijklmnopqrstuvwx Thijklmno[\]^_`abedcfghijklmnopqrstuvwxsee LANGUAGE pragmas (... GHC) experimentalnicolas.frisby@gmail.comNone band8s a disbanded data type back into its normal data type. Since  is a type family, it's the range of band that determines the  t type variable. oneC extends a function that consumes a fields type to a function that B consumes a disbanded data type containing just that fields type. ICombines two functions that consume disbanded data types into a function N that consumes their union. All fields types must be from the same data type. f .|. g = one f  one g f .|| g = one f  g  f ||. g = f  one g disbanded0 injects a fields type into its disbanded range inject,s a fields type into a sum of fields types.  partition@s a sum of fields type into a specified sum of fields types and  the remaining sum. project5s a single fields type out of a disbanded data type. repsC maps a disbanded data type to its sum-of-products representation.  precise_case6 is an exactly-typed case: the second argument is the N discriminant, the first argument is the default case, and the third argument & approximates a list of alternatives.    precise_case default x $  ((C0_ ...) -> ...)   ((C1_ ...) -> ...)   ((C2_ ...) -> ...) In this example, C0_, C1_, and C2_$ are fields types. The other fields 3 types for the same data type are handled with the default function.  ig_from x = 'reps $ disband' x' is a convenience. It approximates the  instant-generics view, less the CEq annotations. yz{|}~  !"#$%&' !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuMNOvwxyz{|}~klkhjiqropmnbc`a^_sutfgde]Z[\WXYUVvwxyz{|}~Tyz{|}~see LANGUAGE pragmas (... GHC) experimentalnicolas.frisby@gmail.comNone None  None  The default yoko derivations can be customised. FHow fields type names are derived from constructor names. Defaults to  (++ "_"). EHow applications of higher-rank data types are represented. Defaults  to [(1,  ''T1 'T1 ' invmap), (2,  ''T2 'T2  'invmap2)]. Should instances of ( also be automatically derived for this  type? Defaults to True. +For which constructors should instances of ] and Z be A automatically derived? Defaults to the set of all constructors. A > identifies the representation type, its constructor, and the + associated mapping function. For example, ` is represented with Mapping  ''T1 'T1 'invmap. The default options. #yokoDefaults = YokoOptions id id id. Derive fields types and all yoko" instances for a given data type. Customized derivation. Z< None%see LANGUAGE pragmas (... GHC) experimentalnicolas.frisby@gmail.comNone  !"#$%&' !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuMNOvwxyz{|}~ see LANGUAGE pragmas (... GHC) experimentalnicolas.frisby@gmail.comNoneSame as compos5 semantics, but with a generalized type and just for - converting between product representations. FindDCs dcA dcBs returns a type-level Maybe. Just dcB is a fields  type dcB where  dcA ~ dcB. The generic version of convert; operates on disbanded data types.  Use the conversion cnv to convert from a to b.  4The applicative functor required by the conversion.              NoneU        !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKL    O        !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLNoneMNOPQRSMNOPQRSNoneTUVWXYZTUVWXYZ[ !" # $ % &'()*+,-./0123456789:;<=>?@ABCDEFFGHIIJKLMNOPQQRSTUVWXYZ[\]]^_`abcdefghijklmnopqqrrssttuuvwxyz{{||}}~                                                      !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyyz{||}~                                                                                  ! " # $ % & ' ( ) * + , - . / 0 1 2 3 4 5 6 789:;<=>89:;<=>?yoko-2.0Data.Yoko.TypeBasicsData.Yoko.MinCtors.MMap Data.Yoko.W Data.YokoRawData.Yoko.MinCtors.MinimaData.Yoko.SmartPreciseCaseData.Yoko.Invariant Data.Yoko.THData.Yoko.PreludeData.Yoko.HComposData.Yoko.MinCtorsData.Yoko.MaybeKindData.Yoko.TH.InternalData.Yoko.RepresentationData.Yoko.ViewData.Yoko.TypeSums Data.YokoData.Yoko.MinCtors.Prims0Data.Yoko.MinCtors.Prims1type-cereal-0.3Type.Serialize.Baseencodetype-ord-spine-cereal-0.2Type.Ord.SpineSerialize SpineCompareMMapunMMapmap singletonnullemptyfoldMapmapWithMonoKeyslookupMaybeMap MaybePlus1IsJustIfComposeWcomposeW composeW'symunSym composeSymW' composeWSymSymW'WunW0unW1unW2unW'0unW'1unW'2unSym0unSym1unSym2 VInitialize vInitialize cvInitializeVEnumcvEnum IndexInto indexIntoIdxSIdxZIdxVZipvZipDiag_VRepeatcvRepeatCVecunCVecTrivConVFunctorvMapVecVConsVNilConstantAppLength'LengthAppendSingNatSNSZNatSZEqualProxy derive_data derive_pro vCarryingtrivCon cvec2list cvZipWithcvAtcvUpd cvAddIndexes DistMaybePlus FoldPlusW' foldPlusW'WNnNunNGenericrepobjRepT2T1T0Par0Par1:+:RLNVoid:*:UCVarietyDepRecunT0mapT0unT1mapT1unT2mapT2unPar0mapPar0unPar1mapPar1unCfoldCmapCunN0foldN0unN1foldN1unN2foldN2mapN0mapN1mapN2foldPlusmapPlusmapTimes foldTimesSubst10Subst1Subst0Subst SubstSpecSub10Sub1Sub0EvalDTdisbandDCsDCrejoin SiblingDTs' SiblingDTsNumDTs'NumDTsDTsDTPosRecDTNonRecDT Codomain2 Codomain1 Codomain0CodomainTag SiblingInC SiblingInT SC_SumInfoSumInfoDTsCVecMinimumMinima1Minima2NP0NP1NRecNCtor addMinima2addSiblingInTssolve_sibling_setsolve_sibling_set'plug0plug10plug0'plug10':-: PartitionEmbed EachGenericEachRepAreDCsOfone|||.|..||||. disbandedbandembedinject partitionprojectreps precise_case0ig_fromDefault gen_invmap gen_invmap2 YokoOptionsrenamermappingsinvInstsdcInstsMappingcontainerTypeName containerCtor methodName yokoDefaultsyokoTH yokoTH_withTrue_False_()_:%_(,)_(,,)_Just_Nothing_Cons_Nil_Right_Left_MapRs0mapRs0ResultsInIncompatibleFieldsFindDCs WithMessageFoundDCMatch!NoCorrespondingConstructorFor_In_HCompos0hcompos0Convert0convert0IdiomMinCtorsminCtorsnCtors gen_minCtors $fMonoidMMapDataTypethFailthWarndataType dataType2DectvbNamepeelApp peelAppAcc expandSynmsubst$fComposeW(->)t$fComposeW(->)t0 $fComposeW*tSym2Sym1Sym0W'2W'1W'0W2W1W0 type-ord-0.3 Type.Ord.BaseIsEQtype-spine-0.2.20120924Type.Spine.BaseSpine Serialize$fVInitializekc:$fVInitializekc[] $fVEnumk: $fVEnumk[]$fOrdIdx$fEqIdx $fShowIdx$fIndexIntokS:$fIndexIntokZ:$fVZipk: $fVZipk[] $fVRepeatk: $fVRepeatk[]$fTraversableCVec$fFoldableCVec $fFunctorCVec $fMonoidCVec $fOrdCVec$fEqCVec $fMonoidVec $fMonoidVec0 $fTrivConka $fVFunctorkc:$fVFunctorkc[]$fOrdVec $fOrdVec0$fEqVec$fEqVec0$fFoldPlusW'(->)s$fFoldPlusW'(->)s0$fFoldPlusW'*s $fWN(->)dc $fWN(->)dc0$fWN*dcN2N1N0WorkscalescaleSiblingInTs homogenize initializestepleftbiaschaotic$fSiblingInCktst $fFunctorMin Partition_N partition_NCombineInjectAtinjectAtElemLocatePath TurnRightTurnLeftHere partition_embed_inject0inject1inject2project0project1project2$fPartition_NTruexsubLsubR$fPartition_NFalsexsubLsubR$fPartition:+:subLsubR$fPartitionNsubLsubR $fEmbed:+:sup $fEmbedNsup$fInjectAtPathTurnRighta:+:$fInjectAtPathTurnLefta:+:$fInjectAtPathHereNNrepEachband_$fEachGeneric:+:$fEachGenericN$fAreDCsOfkt:+: $fAreDCsOfktNStartBuilder precise_case_AdHoc3Error_precise_case_requires_at_least_1_special_case$fBuilderAdHoc(->)$fBuilderAdHoc(->)0$fBuilderStart(->)$fBuilderStart(->)0$fInvariant2Par0$fInvariant2Par1$fInvariant2T2$fInvariant2T1$fInvariant2T0$fInvariant2Void$fInvariant2:+: $fInvariant2N $fInvariant2C$fInvariant2:*: $fInvariant2Uinvariant-0.1.0Data.Functor.Invariantinvmap Invariantinvmap2 Invariant2ConROrepPrepEobjPobjEFieldROrepFobjFM ConFieldsConName TargetPars TargetTVBs TargetCxt TargetType TargetData BindingGroupDCInstsInvInstsMappingsRenamerTargetw0'w1'w2'convertliftQrunMgenerate concatMapMyoko0conName renameContvbKindtvbTypecomposepostConEapplyConT2TVBs conFieldspat_exp simpleValhalvestoNatnamesInfieldROyoko1yoko2yoko3$fNameConFields $fNameConName$fNameTargetPars$fNameTargetTVBs$fNameTargetCxt$fNameTargetType$fNameTargetData$fNameBindingGroup $fNameDCInsts$fNameInvInsts$fNameMappings $fNameRenamer $fNameTarget $fDC*False_$fDC*()_ $fDC(->):%_ $fDC(->)(,)_0$fDC(->)(,,)_0$fDC(->)Nothing_$fDC(->)Left_0 $fDT(->)[]$fDT*[]$fGeneric(->)Cons_$fGeneric*Cons_$fGeneric(->)Nil_$fGeneric*Nil_$fMapRs0kk**cnvmsgdcdc'T2T2$fMapRs0kk**cnvmsgdcdc'T1T1$fMapRs0kk**cnvmsgdcdc'T0T0$fMapRs0kk**cnvmsgdcdc'T0T00$fMapRs0kk**cnvmsgdcdc'CC$fMapRs0kk**cnvmsgdcdc':*::*:$fMapRs0kk**cnvmsgdcdc'UU$fHCompos0**cnvNb$fHCompos0**cnv:+:t$fConvert0(->)xy MinInfo__MinCtorsWorkermethod MinCtorsT MinCtorsTrim minCtorsTrim Regularish regularish MinInfoNonRec minInfoNonRec MinInfoRec minInfoRecpDisbandpRepminima1ToSiblingInTvoidnCtors'deAppdeApp2deNdeCdePlusdeTimesdeRec0deRec1deRec2deDep0pDTs pSiblingDTspIndex minInfo__$fMinCtors*Ratio$fMinCtors(->)Ratio$fMinCtors*Either$fMinCtors(->)Either$fMinCtors(->)Either0 $fMinCtors*[]$fMinCtors(->)[]$fMinCtors*Maybe$fMinCtors(->)Maybe$fMinCtors*(,,)$fMinCtors(->)(,,)$fMinCtors(->)(,,)0$fMinCtors*(,)$fMinCtors(->)(,)$fMinCtors(->)(,)0 $fMinCtors*()$fMinCtors*Bool$fMinInfo__ktst$fMinCtorsWorkerkDTPostRecDT$fMinCtorsWorkerkDTPostNonRecDT$fMinCtorsTrim(->)t$fMinCtorsTrim(->)t0$fMinCtorsTrim*t$fMinInfoNonRec(->)T0$fMinInfoRec(->)kT0ts$fMinInfoRec(->)kT2ts$fRegularishPar0Par1$fRegularishPar1Par0$fMinInfoRec(->)kT1ts$fMinInfoRec(->)kT0ts0$fMinInfoRec(->)kPar0ts$fMinInfoRec(->)kPar1ts$fMinInfoNonRec(->)Par0$fMinInfoNonRec(->)Par1$fMinInfoNonRec(->):*:$fMinInfoRec(->)k:*:ts$fMinInfoRec(->)kUts$fMinInfoNonRec(->)U$fMinInfoNonRec(->):+:$fMinInfoRec(->)k:+:ts$fMinInfoNonRec(->)C$fMinInfoRec(->)kCts$fMinInfoNonRec(->)N$fMinInfoRec(->)kNts$fMinInfoNonRec(->)Void$fMinInfoRec(->)kVoidts$fMinInfoNonRec(->)T2$fMinInfoRec(->)kT2ts0$fMinInfoNonRec(->)T1$fMinInfoRec(->)kT1ts0$fMinCtors(->)ForeignPtr$fMinCtors*Word8$fMinCtors*Double$fMinCtors*Float$fMinCtors*Char$fMinCtors*Integer$fMinCtors*Int