úÎ!PJžZ      !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYNone;=>? Ã bound-extrasf is right m-module. (according to  9https://ncatlab.org/nlab/show/module+over+a+monad#modules definitions). We have Z f m ~> f natural transformation.Laws fma  return = fma fma  (f  g) = (fma  f)  g  PropertiesFor all [ m we can write associated  instance  m m where () = (\). and  are equivalent in power: fa  amb =  (] amb fa)  bound-extrasCalled action. bound-extrasModule's join variant. bound-extras m (t m) action's implementation. bound-extras m (Z f m) action's implementation.1None ;<=>?QV-Â bound-extras^ b f a is a t f expression abstracted over f, with bound variables in b, and free variables in a. ^ n f a ~  n  IdentityT f a  n t f a ~ t (^ n f) a  bound-extrasWe cannot write _ ( n t)/ pre-GHC-8.6 (without an auxiliary type class).  bound-extras8Capture some free variables in an expression to yield a  with bound variables in b.  bound-extras Abstract over a single variable.2abstract1T 'x' (MaybeT (Nothing : map Just "xyz"))?ScopeT (MaybeT [Nothing,Just (B ()),Just (F "y"),Just (F "z")])  bound-extras8Capture some free variables in an expression to yield a  with bound variables in b>. Optionally change the types of the remaining free variables. bound-extras-Abstraction, capturing named bound variables. bound-extrasAbstract over a single variable bound-extrasEnter a #, instantiating all bound variables bound-extrasEnter a * that binds one variable, instantiating it bound-extrasEnter a 9, and instantiate all bound and free variables in one go. bound-extras!Convert to traditional de Bruijn. bound-extrasDConvert from traditional de Bruijn to generalized de Bruijn indices. bound-extras Convert to ^. bound-extras;Perform substitution on both bound and free variables in a . bound-extras;Return a list of occurences of the variables bound by this . bound-extras1Perform a change of variables on bound variables. bound-extrasIPerform a change of variables, reassigning both bound and free variables. bound-extras>Obtain a result by collecting information from bound variables bound-extrasMObtain a result by collecting information from both bound and free variables bound-extras` the bound variables in a ^. bound-extras`? both the variables bound by this scope and any free variables. bound-extrasa the bound variables in a ^. bound-extrasa both bound and free variables  bound-extrasIf you are looking for bitraverseScopeT, this is the monster you need.  bound-extrasa -like for t bound-extrasa -like for s    None ;<=>?QVIÂ0 bound-extras0 b f m a is a f expression abstracted over g, with bound variables in b, and free variables in a. ^ b f a ~ 0 n f f a ScopeT b t f a ~ 0 b (t f) f a 3 bound-extras8Capture some free variables in an expression to yield a 0 with bound variables in b.4 bound-extras Abstract over a single variable.5 bound-extras8Capture some free variables in an expression to yield a 0 with bound variables in b>. Optionally change the types of the remaining free variables.6 bound-extras-Abstraction, capturing named bound variables.7 bound-extrasAbstract over a single variable8 bound-extrasEnter a 0#, instantiating all bound variables9 bound-extrasEnter a 0* that binds one variable, instantiating it: bound-extrasEnter a 09, and instantiate all bound and free variables in one go.; bound-extras!Convert to traditional de Bruijn.< bound-extrasDConvert from traditional de Bruijn to generalized de Bruijn indices.= bound-extras Convert to ^.? bound-extras;Perform substitution on both bound and free variables in a 0.@ bound-extras;Return a list of occurences of the variables bound by this 0.A bound-extras1Perform a change of variables on bound variables.B bound-extrasIPerform a change of variables, reassigning both bound and free variables.C bound-extras>Obtain a result by collecting information from bound variablesD bound-extrasMObtain a result by collecting information from both bound and free variablesE bound-extras` the bound variables in a ^.F bound-extras`? both the variables bound by this scope and any free variables.G bound-extrasa the bound variables in a ^.H bound-extrasa both bound and free variablesJ bound-extrasa -like for f bound-extrasa -like for m0123456789:;<=>?@ABCDEFGHIJ0123456789:;<=>?@ABCDEFGHIJb       !"#$%&'()*+,-./01234556789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`^ab^ac^adefgehi^jk^lmn%bound-extras-0-2HHvRPYU8xJ6WbaLxte3ZCControl.Monad.Module Bound.ScopeT Bound.ScopeH Control.Monad>=>Module>>==mjoin transAction composeAction$fModuleScopem$fModulemIdentityScopeTunscopeT>>>>= abstractT abstract1TabstractTEither abstractTNameabstract1TName instantiateT instantiate1TinstantiateTEither fromScopeTtoScopeT lowerScopeTsplatT bindingsT mapBoundT mapScopeT foldMapBoundT foldMapScopeTtraverseBoundT_traverseScopeT_traverseBoundTtraverseScopeTbitransverseScopeT $fRead1ScopeT $fShow1ScopeT $fOrd1ScopeT $fEq1ScopeT $fReadScopeT $fShowScopeT $fOrdScopeT $fEqScopeT$fNFDataScopeT$fHashableScopeT$fHashable1ScopeT$fModuleScopeTf$fTraversableScopeT$fFoldableScopeT$fFunctorScopeTScopeHunscopeH abstractH abstract1HabstractHEither abstractHNameabstract1HName instantiateH instantiate1HinstantiateHEither fromScopeHtoScopeH lowerScopeHconvertFromScopesplatH bindingsH mapBoundH mapScopeH foldMapBoundH foldMapScopeHtraverseBoundH_traverseScopeH_traverseBoundHtraverseScopeHbitraverseScopeHbitransverseScopeH $fRead1ScopeH $fShow1ScopeH $fOrd1ScopeH $fEq1ScopeH $fReadScopeH $fShowScopeH $fOrdScopeH $fEqScopeH$fNFDataScopeH$fHashableScopeH$fHashable1ScopeH$fTraversableScopeH$fFoldableScopeH$fFunctorScopeH$fModuleScopeHmbaseData.Functor.ComposeComposeGHC.BaseMonad>>=fmap"bound-2.0.1-KyaWiifjaNs5VYeV0DvuZS Bound.ScopeScope Bound.ClassBound Data.Foldable traverse_Data.Traversabletraverse