#dQU1       !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|}~          None,45679;<=>?@ACHMSVXgs   None,45679;<=>?@ACHMSVXgK"blanksMBecause 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,45679;<=>?@ACHMSVXgA>blanks>H is compared on value only, allowing you to define and use things like = in your  BlankInfo6 values to make alpha-equivalent terms structurally (  ) equivalent.=>?@AB>?@A=BNone,4567;<=>?@ACHMSVXgq[JblanksA "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.Kblanks,Coerce from the wrapped type to the newtype.Lblanks,Coerce from the newtype to the wrapped type.JKLJLKNone,4567;<=>?@ACHMSVXg#2Mblanks+Some monadic context that lets you throw a OW. Exists to let you rethrow to a more convenient context rather than pattern maching.Oblanks=Errors that happen in the course of instantiation, thrown by  blankApply and related functions.MNOPQRSOPQRMNSNone,45679;<=>?@ACHMSVXg$X YZ[\]^_`ab YZ[\]a`_^bNone,4567;<=>?@ACHMSVXg*lblanksMThe core internal scope type. (The "w" comes from "wrapper".) We wrap up an Yq in some functor and demand that we unwrap it in an adjoint context. In the first case, these functors will be Identity, yielding the Scope6 newtype. In the second case, these functors will be Located and  Colocated, yielding the LocScope newtype.klmnopqrstuvwxyz{|}~klmnoqpuvwxyz{|}~rstNone,4567;<=>?@ACHMSVXgG+ blanksdA simple wrapper for your expression functor that knows how to name-bind. Create free variables is  , bind them with  +, and list free variables with folds. See LocScope: for a version with additional annotations between layers.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;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.blanksInstantiates 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.blanksAnnotation 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 functionblanks)The names of the variables you're freeingblanks4The expression to substitute 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 inpp None,4567;<=>?@ACHMSVXgJblanksA Scope6 annotated with some information between constructors.blanks2Extract the location (annotation) from this scope. None,4567;<=>?@ACHMSVXgNblanks-Forget all the annotations and yield a plain .blanksAnnotate every location in the  with a given value as a . None,45679;<=>?@ACHMSVXgO None,45679;<=>?@ACHMSVXgP None,4567;<=>?@ACHMSVXgRVm"#$%&'()*+=>?@ABMNOPQRSpNone,4567;<=>?@ACHMSVXgU    !"#$%&'()*+,--.//0123456789:;<=>?@ABCDEFGGHIFJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrsstuvwxyz{|}~                                  blanks-0.5.0-inplace Blanks.CoreBlanks.Located Blanks.NameBlanks.NatNewtype Blanks.Sub Blanks.Under Blanks.ScopeW Blanks.ScopeBlanks.LocScopeBlanks.ConversionBlanks.Tracked Blanks.SplitBlanks Paths_blanks EmbedScope unEmbedScope BinderScopebinderScopeAritybinderScopeInfobinderScopeBody FreeScope unFreeScope BoundScope unBoundScope$fEqBoundScope$fShowBoundScope$fNFDataBoundScope $fEqFreeScope$fShowFreeScope$fFunctorFreeScope$fFoldableFreeScope$fTraversableFreeScope$fNFDataFreeScope$fEqBinderScope$fShowBinderScope$fFunctorBinderScope$fFoldableBinderScope$fTraversableBinderScope$fGenericBinderScope$fNFDataBinderScope$fEqEmbedScope$fShowEmbedScope$fFunctorEmbedScope$fNFDataEmbedScope Colocated unColocatedLocated locatedLoc locatedVal colocated askColocated runColocated$fMonadWriterlLocated$fMonadLocated$fApplicativeLocated$fAdjunctionLocatedColocated$fDistributiveColocated $fEqLocated $fShowLocated$fFunctorLocated$fFoldableLocated$fTraversableLocated$fGenericLocated$fNFDataLocated$fFunctorColocated$fApplicativeColocated$fMonadColocated$fMonadReaderColocated$fRepresentableColocatedNameOnlyNamenameKey nameValue$fEqName $fShowName $fFunctorName$fFoldableName$fTraversableName $fGenericName $fNFDataName NatNewtype natNewtypeTonatNewtypeFromThrowSubthrowSubSubError ApplyError UnboundErrorNonBinderError rethrowSub$fExceptionSubError $fThrowSubIO$fThrowSubEither $fEqSubError$fShowSubError UnderScopeUnderBoundScopeUnderFreeScopeUnderBinderScopeUnderEmbedScopeUnderScopeEmbedUnderScopeBinderUnderScopeFreeUnderScopeBoundunderScopeShift$fBitraversableUnderScope$fBifoldableUnderScope$fBifunctorUnderScope$fEqUnderScope$fShowUnderScope$fFunctorUnderScope$fGenericUnderScope$fNFDataUnderScopeScopeWCScopeWunScopeW scopeWFreescopeWFromInnerBinder scopeWEmbed scopeWBind scopeWBindOpt scopeWLiftscopeWInnerBinderscopeWInnerBinder1scopeWAbstractscopeWAbstract1scopeWUnAbstractscopeWUnAbstract1scopeWInstantiatescopeWInstantiate1 scopeWApply scopeWApply1scopeWLiftAnnoscopeWHoistAnno scopeWMapAnno$fTraversableScopeW$fFoldableScopeW$fFunctorScopeW $fShowScopeW $fEqScopeW$fNFDataScopeWScopeunScope ScopeEmbed ScopeBinder ScopeFree ScopeBound scopeBind scopeBindOpt scopeLiftscopeInnerBinderscopeInnerBinder1 scopeAbstractscopeAbstract1scopeUnAbstractscopeUnAbstract1scopeInstantiatescopeInstantiate1 scopeApply scopeApply1 $fShowScope $fEqScope $fMonadScope$fApplicativeScope $fNFDataScope$fNatNewtypeScopeWScope$fFunctorScope$fFoldableScope$fTraversableScopeLocScope unLocScope LocScopeEmbedLocScopeBinder LocScopeFree LocScopeBoundlocScopeLocation locScopeFree locScopeEmbedlocScopeFromInnerBinder locScopeBindlocScopeBindOpt locScopeLiftlocScopeInnerBinderlocScopeInnerBinder1locScopeAbstractlocScopeAbstract1locScopeUnAbstractlocScopeUnAbstract1locScopeInstantiatelocScopeInstantiate1 locScopeApplylocScopeApply1locScopeLiftAnnolocScopeHoistAnnolocScopeMapAnno$fShowLocScope $fEqLocScope$fMonadWriterlLocScope$fMonadLocScope$fApplicativeLocScope$fNFDataLocScope$fNatNewtypeScopeWLocScope$fFunctorLocScope$fFoldableLocScope$fTraversableLocScopelocScopeForget scopeAnno WithTrackedwithTrackedStatewithTrackedEnvTracked trackedFree trackedBound mkTrackedFreemkTrackedBound shiftTrackedforgetTrackedScope trackScopetrackScopeSimple$fMonoidTracked$fSemigroupTracked $fEqTracked $fShowTracked$fGenericTracked$fNFDataTracked$fEqWithTracked$fShowWithTracked$fGenericWithTracked$fFunctorWithTracked$fFoldableWithTracked$fTraversableWithTracked$fNFDataWithTracked SplitResultsplitResultTrackedsplitResultScopesplitResultBinders SplitBindersplitBinderClosureAritysplitBinderFreesplitBinderScope SplitFunctorSplitFunctorBaseSplitFunctorClosureBinderId unBinderId splitLocScope$fNFDataSplitBinder$fShowSplitBinder$fEqSplitBinder $fEqBinderId$fShowBinderId $fOrdBinderId$fEnumBinderId$fNFDataBinderId $fNumBinderId$fEqSplitFunctor$fShowSplitFunctor$fGenericSplitFunctor$fFunctorSplitFunctor$fFoldableSplitFunctor$fTraversableSplitFunctor$fNFDataSplitFunctor$fGenericSplitBinderghc-prim GHC.ClassesEqbaseGHC.Basepure>>=version getBinDir getLibDir getDynLibDir getDataDir getLibexecDir getSysconfDirgetDataFileName