Îõ³h$h wÞ      !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\] Safe-Inferred>?ÀÔÖ×Ù“ bound-simpleUsed with the  DerivingVia, extension to provide fast derivations for , , and .  bound-simple=A suitable implementation of Eq1™@s liftEq for Generic1 types. bound-simpleÃA suitable implementation of Ord1™@s liftCompare for Generic1 types. bound-simpleÆA suitable implementation of Show1™@s liftShowsPrec for Generic1 types. bound-simpleÆA suitable implementation of Show1™@s liftShowsPrec for Generic1 types.    Lightweight implementation of bound'(c) 2013 Edward Kmett, 2021 Marco ZoccaBSDgithub.com/ocramz experimentalPOSIX Safe-Inferred 56789:<= G3 bound-simplePerform substitutionIf t is an instance of  MonadTransÍ and you are compiling on GHC >= 7.4, then this gets the default definition: m 3 f = m ^ _ ` f4 bound-simple4 b f a is an f$ expression with bound variables in b, and free variables in a6 bound-simple6 is just another name for a7 bound-simple7 is just another name for 48 bound-simple8 a p w replaces the free variable a with p in w.9substitute "hello" ["goodnight","Gracie"] ["hello","!!!"]["goodnight","Gracie","!!!"]9 bound-simple9 a b w replaces a free variable a with another free variable b in w.5substituteVar "Alice" "Bob" ["Alice","Bob","Charlie"]["Bob","Bob","Charlie"]: bound-simple9Capture some free variables in an expression to yield a 4 with bound variables in b:m + Data.List$abstract (`elemIndex` "bar") "barry"Scope [B 0,B 1,B 2,B 2,F 'y']; bound-simpleAbstract over a single variableabstract1 'x' "xyz"Scope [B (),F 'y',F 'z']< bound-simple0Enter a scope, instantiating all bound variables:m + Data.ListÌinstantiate (\x -> [toEnum (97 + x)]) $ abstract (`elemIndex` "bar") "barry""abccy"= bound-simpleEnter a 4* that binds one variable, instantiating it+instantiate1 "x" $ Scope [B (),F 'y',F 'z']"xyz"? bound-simple;Return a list of occurences of the variables bound by this 4.@ bound-simpleêIf a term has no free variables, you can freely change the type of free variables it is parameterized on. closed [12]Nothing closed ""Just [] :t closed ""closed "" :: Maybe [b]A bound-simple$A closed term has no free variables. isClosed []TrueisClosed [1,2,3]FalseF bound-simpleÓThe monad permits substitution on free variables, while preserving bound variablesI bound-simpletoList; is provides a list (with duplicates) of the free variables 23456789:;<=>?@A234765:;<=?>@89A b9 ã       !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdeafghé+bound-simple-0.2.0.0-4iD2bfDGGww6cAmTRQGquAData.Functor.Classes.Generic Bound.SimplebaseData.Functor.ClassesliftEqEq1 liftCompareOrd1 liftShowList liftShowsPrecShow1 Generically unGenerically GShow1OptionsoptionsUseRecordSyntax genericLiftEqgenericLiftComparedefaultGShow1OptionsgenericLiftShowsPrecgenericLiftShowsPrecWithOptions $fGEq1:.: $fGEq1:*: $fGEq1:+:$fGEq1M1 $fGEq1Rec1$fGEq1K1 $fGEq1Par1$fGEq1U1 $fGOrd1:.: $fGOrd1:*: $fGOrd1:+: $fGOrd1M1 $fGOrd1Rec1 $fGOrd1K1 $fGOrd1Par1 $fGOrd1U1 $fGShow1:.: $fGShow1:*: $fGShow1:+: $fGShow1M1 $fGShow1M10 $fGShow1Rec1 $fGShow1K1 $fGShow1Par1 $fGShow1U1$fGShow1Body:*:$fGShow1BodyM1$fGShow1BodyU1 $fGShow1M11$fShow1Generically$fOrd1Generically$fEq1GenericallyBound>>>=ScopeVar fromScopetoScope substitute substituteVarabstract abstract1 instantiate instantiate1 hoistScopebindingsclosedisClosed $fShow1Var $fShow2Var$fEq1Var$fEq2Var $fMonadScope$fApplicativeScope$fTraversableScope$fFoldableScope$fFunctorScope $fShowScope $fEqScope $fBoundScope $fShowExp$fEqExp $fFunctorExp $fFoldableExp$fTraversableExp$fGeneric1TYPEExp $fShow1Exp$fEq1Exp$fGeneric1TYPEScope $fShow1Scope $fEq1Scope$fEqVar $fShowVar $fFunctorVar $fFoldableVar$fTraversableVarGHC.Base>>=transformers-0.5.6.2Control.Monad.Trans.Classlift.unscope:@