úÎ!ncĀ      !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|}~€‚ƒ„…†‡ˆ‰Š‹ŒŽ‘’“”•–—˜™š›œžŸ ĄĒĢĪĨͧĻĐŠŦŽ­ Ū Ŋ ° ą ē ģ ī ĩ ķ · ļ đ š ŧ ž ― ū ŋ None,4567=>?@ACHMSVXgblanksMBecause we defined a unique left adjoint, we have to define the unique right.blanksThis is basically the Env< comonad, but with the env strict. It's also basically the Writer` monad in certain contexts. We define a new, non-transforming datatype so we can pattern-match.   None,4567=>?@ACHMSVXgũblanksH is compared on value only, allowing you to define and use things like  in your  BlankInfo6 values to make alpha-equivalent terms structurally (Ā ) equivalent.None,4567=>?@ACHMSVXgq$blanksĄA "natural isomorphism" between two functors, like exists derivably between newtyped functors and their wrapped types. The functional dependency requires that g be the newtype and m the wrapped type.%blanks,Coerce from the wrapped type to the newtype.&blanks,Coerce from the newtype to the wrapped type.$%&$&%None,4567=>?@ACHMSVXgĮ'blanks+Some monadic context that lets you throw a )W. Exists to let you rethrow to a more convenient context rather than pattern maching.)blanks=Errors that happen in the course of instantiation, thrown by  blankApply and related functions.'()*+,-)*+,'(-None,4567=>?@ACHMSVXgÕ3456789:;<=>?@ABCDEFGHIJKLMNOPQABCDEIJK>?@FGH9:;<=345678ONMLQPNone,4567=>?@ACHMSVXg Ŧhijklmnopqrstuvwxyz{jklmihnostuvpqrwxyz{None,4567=>?@ACHMSVXgVblanks A pair of ‚Z functors that index the same info and embedded functors. Used to change adjoint functors.‚blanksIndicates that gG is a "scope" functor we can use for name-binding. (Behind-the-scenes, g% must be a newtype wrapper over the k* datatype.) Most of the time you will use Scope or LocScope. directly, which are instances of this class./We use the pair of adjoint functors indexed by gX to shift the burden of operating in context where it is more convenient. For example, LocScope/ uses a pair of functors that are essentially Env and Reader. The left adjoint Env] lets us annotate every level of our expression tree with a location, and the right adjoint ReaderN informs us of that location so we don't have to make one up out of thin air!Scope uses the pair of functors Identity and Identity—, which means there is no ability to store any additional information in the tree, but there's also no additional burden to provide that information.…blanksThe expression functor used by g.†blanksThe binder info used by g.‡blanks"The right adjoint functor used by gˆblanks!The left adjoint functor used by g.‰blanks#Creates a free variable in context.Šblanks(Embeds an expression functor in context.‹blanks;Binds free variables in an expression and returns a binder.Œblanks‹ for a single argument.blanksCUn-bind free variables in an expression. Basically the inverse of ‹/. Take care to match the arity of the binder! (‘ is safer.)blankswInstantiate the bound variables in an expression with other expressions. Take care to match the arity of the binder! (‘ is safer.)blanks for a single argument.‘blanksĶInstantiates the bound variables in an expression with other expressions. Throws errors on mismatched arity, non binder expression, unbound vars, etc. A version of ' that fails loudly instead of silently!’blanks‘ for a single argument.“blanksA ' version of ‘.”blanksA ' version of ’.•blanks'Substitution as a kind of monadic bind.–blanks6Optional substitution as another kind of monadic bind.—blanks2Lift an expression functor into the scope functor.˜blanks-Pattern match all cases of the scope functor.™blanksIPattern match all cases of the scope functor, and eliminate the adjoints.šblanksYLift a value of your left adjoint functor (annotating the tree) into your scope functor.›blankslApply a natural transformation to your left adjoint functor (annotating the tree) to change scope functors.œblanksŒApply a function to the free variables in scope in the context of the left adjoint functor. (Allows you to read annotations when fmapping.)‰blanksThe name of the free variableŠblanks An expression‹blanksAnnotation specific to your expression functor. Might contain original variable names and types, or might mark this as a "let" vs a "lambda".blanks=Free variables to bind, like the names of function parametersblanks6The expression to bind in, like the body of a functionblanks)The names of the variables you're freeingblanks5The expression to substitutue in (typically a binder)blanks0Expressions to substitute in place of bound varsblanks4The expression to substitute in (typically a binder)‘blanks0Expressions to substitute in place of bound varsblanks&The binder expression to substitute in‚ƒ„…†‡ˆ‰Š‹ŒŽ‘’“”•–—˜™š›œ‚ˆ‡†…„ƒ‰Š‹ŒŽ‘’“”•–—˜™š›œNone,4567=>?@ACHMSVXgZ}blanksOA simple wrapper for your expression functor that knows how to name-bind. See ‚V for usage, and see the patterns in this module for easy manipulation and inspection.žŸ ĄĒĢžŸĢĒĄ  None,4567=>?@ACHMSVXg_ä­blanksA < annotated with some information between constructors. See ‚V for usage, and see the patterns in this module for easy manipulation and inspection.īblanks2Extract the location (annotation) from this scope.ĩblanks-Forget all the annotations and yield a plain . ­ŪŊ°ąēģīĩ ­ŪŊģēą°īĩ None,4567=>?@ACHMSVXgaC '()*+,-‚ƒ„…†‡ˆ‰Š‹ŒŽ‘’“”•–—˜™š›œžŸ ĄĒĢ­ŪŊ°ąēģīĩ None,4567=>?@ACHMSVXgbėÁÂÃÄÅÆĮČÉ    !"#$$%&#'()*+,-./0123456789:;;<=>?@ABCDEEFGGHIJKKLMMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnnopqrstuvwxyz{|}~€‚ƒ„…†‡ˆ‰Š‹ŒŽ‘’“”•–—˜™š›œžŸŸ ĄĒĢĪĨͧĻĐŠŦŽ­ Ū Ū Ŋ ° ą ē ģ ī ĩ ķ · ļ đ š ŧ ž ― ū ŋĀÁÂ Ã Ä Å Æ Į Č É ĘË#blanks-0.4.0-IqEGez1Lit7ET7tkfYuPEaBlanks.Located Blanks.NameBlanks.NatNewtype Blanks.SubBlanks.UnderScope Blanks.ScopeWBlanks.Interface Blanks.ScopeBlanks.LocScopeBlanks Paths_blanks Colocated unColocatedLocated _locatedLoc _locatedVal colocated askColocated runColocated$fMonadWriterlLocated$fMonadLocated$fApplicativeLocated$fAdjunctionLocatedColocated$fDistributiveColocated $fEqLocated $fShowLocated$fFunctorLocated$fFoldableLocated$fTraversableLocated$fFunctorColocated$fApplicativeColocated$fMonadColocated$fMonadReaderColocated$fRepresentableColocatedNameOnlyName_nameKey _nameValue$fEqName $fShowName $fFunctorName$fFoldableName$fTraversableName NatNewtype natNewtypeTonatNewtypeFromThrowSubthrowSubSubError ApplyError UnboundErrorNonBinderError rethrowSub$fExceptionSubError $fThrowSubIO$fThrowSubEither $fEqSubError$fShowSubErrorUnderScopeFoldusfBoundusfFree usfBinderusfEmbed UnderScopeUnderBoundScopeUnderFreeScopeUnderBinderScopeUnderEmbedScope EmbedScope unEmbedScope BinderScopebinderScopeAritybinderScopeInfobinderScopeBody FreeScope unFreeScope BoundScope unBoundScopeUnderScopeEmbedUnderScopeBinderUnderScopeFreeUnderScopeBoundunderScopeShiftunderScopeFold$fBitraversableUnderScope$fBifoldableUnderScope$fBifunctorUnderScope$fEqBoundScope$fShowBoundScope $fEqFreeScope$fShowFreeScope$fFunctorFreeScope$fFoldableFreeScope$fTraversableFreeScope$fEqBinderScope$fShowBinderScope$fFunctorBinderScope$fFoldableBinderScope$fTraversableBinderScope$fEqEmbedScope$fShowEmbedScope$fFunctorEmbedScope$fEqUnderScope$fShowUnderScope$fFunctorUnderScope$fFunctorUnderScopeFold ScopeWFold ScopeWRawFoldScopeCScopeWunScopeW scopeWFree scopeWEmbed scopeWBind scopeWBindOpt scopeWLiftscopeWAbstractscopeWUnAbstractscopeWInstantiate scopeWApply scopeWRawFold scopeWFoldscopeWLiftAnnoscopeWHoistAnno scopeWMapAnno$fTraversableScopeW$fFoldableScopeW$fFunctorScopeW $fShowScopeW $fEqScopeW BlankPairBlank BlankFold BlankRawFold BlankFunctor BlankInfo BlankRight BlankLeft blankFree blankEmbed blankAbstractblankAbstract1blankUnAbstractblankUnAbstract1blankInstantiateblankInstantiate1 blankApply blankApply1blankApplyThrowblankApply1Throw blankBind blankBindOpt blankLift blankRawFold blankFold blankLiftAnnoblankHoistAnno blankMapAnnoScopeunScope ScopeEmbed ScopeBinder ScopeFree ScopeBound $fShowScope $fEqScope $fMonadScope$fApplicativeScope$fNatNewtypeScopeWScope $fBlankScope$fFunctorScope$fFoldableScope$fTraversableScopeLocScope unLocScope LocScopeEmbedLocScopeBinder LocScopeFree LocScopeBoundlocScopeLocationlocScopeForget$fShowLocScope $fEqLocScope$fMonadWriterlLocScope$fMonadLocScope$fApplicativeLocScope$fNatNewtypeScopeWLocScope$fBlankLocScope$fFunctorLocScope$fFoldableLocScope$fTraversableLocScopeghc-prim GHC.ClassesEqversion getBinDir getLibDir getDynLibDir getDataDir getLibexecDir getSysconfDirgetDataFileName