xq?7      !"#$%&'()*+,-./0123456 Safe-Inferred Extends the  TraversableT concept to three type arguments. (Note: we are missing analogies to the functions  bitraverse,  bisequenceA and bimapM found in Data.Bitraversable.){Sequences all the actions in the structure, building a new structure with the same shape using the results of the actions. Extends the 7U concept to three type arguments. (Note: we are missing analogies to the functions first and second found in Data.Bifunctor.),Maps over all three arguments simultaneously8989None :)Repeated left-associative application of ;<)Repeated left-associative application of =>Application of '(->)'?0Repeated right-associative application of '(->)'@An infinite list of names x1, x2...AAn infinite list of names x1', x2'...B0An infinite list of expression variables named x1, x2...C0An infinite list of expression variables named x1', x2'...D-An infinite list of pattern variables named x1, x2...E-An infinite list of pattern variables named x1', x2'...F Splits a G8 into the list of type applications that comprise it. appTs . unAppTs == id (although unAppTs . appTs may not == id5 if any of the arguments are applications themselves.H Returns the I of the J& with the first character upper-cased :<>?@ABCDEFH :<>?@BCDEFH :<>?@ABCDEFHNone+Access to the J of a Data structureRepresents a datatype's name.WRepresents a component of a datatype; that is, an argument to one of its constructors. an application of a  Trifunctor an application of a K an application of a 7 a type to be recursively folded -a type to be taken verbatim, not to be folded`Represents one way to construct a datatype; that is, one of its constructors and its arguments.#Represents a datatype to be folded.+Represents a set of datatypes to be folded.)Access to the datatypes of a fold family.Access to the s of a datatypeAccess to the  DataFieldss of a  Provides a L for an atomic  in a  Provides a L for an nonatomic  in a  Provides a L for a 7 application in a  Provides a L for a K application in a  Provides a L for a  Trifunctor application in a  MNO   MNONone UThe fold. Bundles up the functions used to replace constructors in the fold family.' The identity %. Intended as a base to be modified.( The error $. Intended as a base to be modified.)%Using the constructors from the base :, folds monadically in a bottom-up, left-to-right manner.*Monadically folds over a +Monadically folds over a ,Monadically folds over a -Monadically folds over a .Monadically folds over a FoldTy !"#$%&'()*+,-. !"#$%&'()*+,-. !"#$%&'()-,*+.   !"#$%&'()*+,-.NoneP Folds the  FoldFamily" fold family into pretty-printing QsPPPNone RA L over the constructor J s of the /Returns True iff the Js of the datatypes in the  are all unique.0Returns the set of constructor J s in the  that are repeated.1Returns True iff the constructor J s of the  are all unique.2 Creates declarations for the * Fold, * idFold, * errFold, *  monadicFold , * and one foldXxx function for each datatype Xxx in the .SCreates a declaration for the Fold.TCreates a declaration for the idFold.UCreates a declaration for the errFold.VCreates a declaration for the  monadicFold.WCreates a fold function foldXxx for each datatype Xxx in the .XYR/01Z[\]^_`abc2STdUVWe/012210/XYR/01Z[\]^_`abc2STdUVWeNone+BHMfA concrete instance of ggMonads for building shType synonym isomorphic to 3!Errors possible while building a iThe pretty-printing of a Doc of a j.   is not in h?, so we have to convert to a String to allow it to be spliced.k A stack of Js being processed42Prints onto standard output the result of running 5+ but doesn't splice the fold declarations.5\Discovers the fold family and builds declarations from it to be spliced into a source file.The fold family includes the root datatypes and the datatypes of all of their components, recursively. Datatypes declared as atomic will not be included, nor their components.oIn general, the framework does not currently handle parameterized datatypes, but applications of datatypes in l, m, or 5 are treated as "transparent" and traversed through.The framework generates:a type-parameterized Fold' record datatype. Each type parameter xxx& corresponds to a non-atomic datatype Xxx! in the fold family. Each field mkYyy of the Fold corresponds to a constructor Yyy* used by some datatype in the fold family.an idFold record. Folding over idFold is equivalent to applying id: it does nothing. idFold: is useful as a base record to build your own folds upon.an errFold function to create a FoldT record, with undefined fields that give a useful error message when accessed. The mkXxx field of errFold "example" is defined to contain error "example.mkXxx".a  monadicFold function that lifts a  Fold a b c into a Fold (m a) (m b) (m c)J. It applies the base fold monadically in a bottom-up, left-to-right way.for each datatype Xxx, a foldXxx function that applies a Fold to an Xxx" value, returning a value of type xxx. The names Fold, idFold, errFold, and  monadicFold8 are fixed. They are intended to be imported qualified.You are not expected to understand the structure of the generated code from this generic description. Generate code for your specific case and look at its Haddock documentation.uSince the discovery process can automatically collect a very large number of datatypes, and since the user doesn't usually see the spliced code, we require the user to declare what she expects so that there are no surprises. For that reason, any functor classes expected to be appear in the result must be declared, as are datatypes the user wants to treat as atomic.There are a few other restrictions not mentioned here: if you hit any of them, the framework should output a helpful, intelligible error message when generating the declarations and before trying to splice and compile the declarations. You should see no errors from the compiler trying to compile bad generated code. If you do, that's a bug; please let us know. If the error messages are opaque, that's a bug too.n Builds a .6 Builds a 2 or returns an error. Spliced result is of type o 3 .p Builds a  in any g monad.qPrepends the stack tracerTurn a list of h into a , catching errors.s Throws a 3 with the current stackt Evaluate f values down to the u monadvA wrapped version of w that works on WSs and rethrows exceptions in u into f./fxygz{|}~h3ik45names of the root datatypes names of the n-ary functor classes to be used(names of datatypes declared to be atomicn6pqrstv34565436fxygz{|}~h3ik45n6pqrstv None55    !"##$%&'()*+,-./0123456789:;<=>?@ABCDEFCDGHIJKLMNOPCDQRCDSCDTUVWXYZ[\]^_` abcdefghijklmnopqrstuvwxCDyz={|U}~=CDCDu origami-0.0.3 Data.Origami.Internal.Trifunctor Data.Origami.Internal.FoldFamilyData.Origami.Internal.FoldData.Origami.Internal.THData.Origami.Internal.BuildData.Origami.Internal.THUtilsData.Origami.Internal.PrettyLanguage.Haskell.TH.PprLibDoc Data.OrigamiTritraversable trisequence TrifunctortrimapHasNamenameTy DataFieldTrifunctBifunctFunct NonatomicAtomicDataCaseDataTy FoldFamilydataTys dataCases dataFields_Atomic _Nonatomic_Funct_Bifunct _TrifunctFoldmkAtomic mkBifunct mkDataCasemkDataTy mkFoldFamilymkFunct mkNonatomic mkTrifunctmkTyidFolderrFold monadicFold foldDataCase foldDataField foldDataTyfoldFoldFamilyfoldTytypeNamesAreUniqueduplicateCtorNamesctorNamesAreUnique mkFoldDecsBuildErrbuildFoldsDryRun buildFoldsbuildFoldFamilyMaybebaseGHC.BaseFunctor$fTritraversable(,,)$fTrifunctor(,,)appEstemplate-haskellLanguage.Haskell.TH.SyntaxAppEappTsAppTfuncTfuncTsnmsnms'varEsvarEs'varPsvarPs'unAppTsType upperNamenameBaseNamebifunctors-4.2.1Data.Bifunctor Bifunctorlens-4.8Control.Lens.Type Traversal $fHasNameTy$fHasNameDataCase$fHasNameDataTy prettyFoldpretty-1.1.1.1Text.PrettyPrint.HughesPJ ctorNames mkFoldDec mkIdFoldDecs mkErrFoldDecsmkMonadicFoldDecsmkFoldFuncDecs typeNames dataCases' duplicates areUnique lowerTHName upperTHNamethMkName thMkString thFoldName thFoldStringfoldName typeNameListfoldTy'mkSortedRecBodyBuild MonadBuildDataDecDocDecStackData.Traversable TraversableData.Bitraversable BitraversablebuildFoldFamily Data.EitherEitherbuildFoldFamilyMBshowStk processDatathrowErrWithStackrunBuildQreifyTypeName'reifyunBgetDatagetStack putDataTy reifyTypeNameseeseenthrowErr withStackTopErrUnsupported ErrUnimpl ErrThrownInQErrReifyUnimpl ErrReify'ErrReifyErrParamTypeSyn ErrParamType ErrNoInstance ErrNoFunct ErrNoCtor ErrNoClass ErrMonadFail ErrInfixCtor ErrEmptyFold ErrEmptyData ErrDupCtorspretty$fMonadBuildBuild$fErrorBuildErr$fShowBuildErr