|mo      !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQR S T U V W X Y Z [ \ ] ^ _ ` a b c d e f g h i j k l m n o p q rstuvwxyz{|}~ Safe-Inferred !"(246=JK     None&'=K  Provides a conditional using an  alternation# operation, as opposed to using  Subeffect WType family for describing how to combine effects of the two branches of an if $Conditional on effectful operations       Safe-Inferred!"&'(2346=JK6 !"#$%&' !"#$%&'!#"%'& $, !#"$%&'None!"'(2346=JKM()*+,-./0123456789:;<=()*+,-./0123453412,0/.-=<;:59+*()876()*+,0/.-123456789:;<=12None&'6=K>!Specifies subeffecting behaviour @vSpecifies "parametric effect monads" which are essentially monads but annotated by a type-level monoid formed by B and A A-Effect of a trivially effectful computation |B*Cominbing effects of two subcomputations |CC% provides a way to give instances of @ their own constraints for E D Effect-parameterised version of DD. Annotated with the 'Unit m' effect, denoting pure compuation EEffect-parameterise version of E. (bind). Combines two effect annotations f and g$ on its parameter computations into B >?@ABCDEFG >?@ABCDEFG @ABCDEFG>?>?@ABCDEFGNone<=JKHType-level addition I$The counter has no semantic meaning KProvides a way to countc in the type-level with a monadic interface to sum up the individual counts of subcomputations -Define type constructors for natural numbers LA L) provides a way to increment the counter HIJKLHIJKLKJILHHIJKLNone(=JKMProvides a way to count in the type-level with a monadic interface to sum up the individual counts of subcomputations. Instead of using our own inductive natural number typ, this uses the  kind from  $The counter has no semantic meaning PA P) provides a way to increment the counter MNOPQMNOPMNOQPMNOPQ None!"<=KX1Provides an indexed version of the |Maybe| monad RSTUVWXYZ[RSTUVWX XWVRUTS[ZYRUTSVWXYZ[ None!"=K\All monads are parametric effect monads with a trivial singleton-monoid index. This wrapper wraps normal monads into the Effect interface using the M contructor.Wrap regular monads up ^Unwrap a monad \]^_\]^\]^_\]^_ None&'(=K`PData type denoting either a morphisms with source and target types, or identity cImplements Bob Atkey's 'parametric monads', and also the Control.Monad.Indexed package, by emulating indexing by morphisms Data type of morphisms `abcde`abcdcd`bae`bacde None (246=JKfProvides a weak reader monad, which can only read an item once. Provides an effect system as a list of the items that have been read ii for a value of type a fghifghiifghfghi None !"%(246<=KmMParametric effect update monad. A bit like a writer monad specialised to the  monoid, providing a single memory cell that can be updated, but with heterogeneous behaviour. Provides an effect system that explains whether a single memory cell has been updated or not p0Update the memory cell with a new value of type a jklmnopqjklmnopmonjklqpjklmonpqNone !"236<=K rstuvwxyrstuvwxwvsutrxyrsutvwxyNone (246=JKzProvides a kind of writer monad, which can only write an item once (no accumulation), an effect system as a list of the items that have been written }Write a value of type a z{|}z{|}}z{|z{|}None%&'(2346=JK~Provides a effect-parameterised version of the class reader monad. Effects are sets of variable-type pairs, providing an effect system for reader effects.  for a variable v of type a, raising an effect FProvides a way to emulated the ImplicitParams features of GHC/Haskell If s is a subset of t then, s is a subeffect of t ~!"#,-./012~~12,0/.-!#"~None%&'(2346=JK4Captures what it means to be a set of state effects "Calculate just the writer effects "Calculate just the reader effects Parametric effect state monad PUpdate reads, that is any writes are pushed into reads, a bit like intersection SValue-level remove duplicates from a type-level list and turn different sorts into | RType-level remove duplicates from a type-level list and turn different sorts into | Describes an effect action s on a value of type a &Provides a wrapper for effect actions Provides an effect-parameterised version of the state monad, which gives an effect system for stateful computations with annotations that are sets of variable-type-action triples. +Distinguish reads, writes, and read-writes "Union operation for state effects ~Intersects a set of write effects and a set of read effects, updating any read effects with any corresponding write value Read from a variable v of type a. Raise a read effect. Write to a variable v with a value of type a. Raises a write effect ,#!"#,-./012#!#"12,0/.-#None!"'(2346=JKM@Computes supersets of sets of variable-type mappings, using the  operation Provides an effect-parameterised version of the writer monad. Effects are sets of variable-type pairs, providing an effect system for writer effects. Write to variable v with value of type a ;Define the operation for removing duplicates using mappend !"#%,-./011!#"%,0/.- None &'(6=KM$Specifies sub-coeffecting behaviour +Zips two coeffecting computations together |Specifies "parametric coeffect comonads" which are essentially comonads but annotated by a type-level monoid formed by  and  "Coeffect-parameterised version of G, annotated with the 'Unit m' effect, denoting pure contexts !Coeffect-parameterise version of &. The two coeffec annotations s and tV on its parameter computations get combined in the parameter computation by  None !"&(246=JKmProvides 'reader monad'-like behaviour but as a comonad, using an indexed version of the product comonad  for the value of variable v, e.g., 'ask (Var::(Var "x"))'  !"#$%&'()*+,-./0123456789:;<=>?@ABCDAEEFFGHIJKLMNOPQRSTUVWXYZ[\B][[^]_ ` a b c d e f g h i j k l m n o p e e q r s t u v v w x y z { |}~\B{rtuv3xxs;{{USTu[^ .0/ ixmonad-0.57Control.Effect.WriterControl.Effect.Helpers.ListControl.Effect.CondControl.Effect.Helpers.SetControl.Effect.Helpers.MappingControl.EffectControl.Effect.CounterControl.Effect.CounterNatControl.Effect.MaybeControl.Effect.MonadControl.Effect.ParameterisedControl.Effect.ReadOnceReaderControl.Effect.UpdateControl.Effect.VectorControl.Effect.WriteOnceWriterControl.Effect.ReaderControl.Effect.StateControl.CoeffectControl.Coeffect.CoreaderGHCTypeLitsbase GHC.TypeLitsSymbolSplitsplit:++ListConsNilappend $fSplit:ys $fSplit[]xsCondAltInvAltifMSubsetsubsetOrdHminHmaxHMaxMinSortNubablenubNubAppendSortable UnionableUnionIsSetAsSetSetExtEmptyasSetunionbsortChooserchooseChooseSelectVarZYX:->Proxyselect $fChooserGT $fChooserEQ $fChooserLT $fOrdH:->:-> $fShowVar $fShowVar0 $fShowVar1 $fShow:-> SubeffectsubEffectUnitPlusInvreturn>>=>>fail:+CounterStickforget$fEffectNatCounterIMaybeIDynIJustINothingUTF $fCond*IMaybe$fEffect*IMaybe $fShowIMaybeMonadWrapunWrap$fEffect*MonadMorphIdM$fEffectMorphTReaderR runReaderaskUpdate runUpdateEffNoPutPutput$fEffectMaybeUpdateAddVector$fEffect*Vector WriteOnceW runWriteOnceIxRmergeStateSetWritesReadsStaterunState IntersectRUnionSSetLike:!ActionRWgetWriter runWriter Subcoeffectsubco CoeffectZipMeetCzipInvczipCoeffectextractextend IxCoreader runCoreader$fCoeffectZip[]IxCoreader$fCoeffect[]IxCoreader TFCo:R::++:ysTFCo:R::++[]ysShow'show'PasserpassPassBubblerbubbleBubble SetProperties $fSubsets: $fSubset:: $fSubset[]t $fSplits:: $fSplit:t: $fSplit::: $fSplit[][][] $fShow'Set $fShow'Set0 $fShowSet $fShowSet0 $fPasser: $fPasser:0 $fPasser[] $fBubblers: $fBubblers[] $fNubable: $fNubable:0 $fNubable[]TFCo:R:Max:->:->TFCo:R:Min:->:->$fEffect*Counter TFCo:R::+nS TFCo:R::+nZNat$fCond[]Reader$fEffect[]Reader Data.MaybeMaybe TFCo:R:AddSm TFCo:R:AddZm$fEffect[]WriteOnce$fSubeffect[]Readerst intersectRStateSetPropertiesupdate$fEffect[]State $fUpdate:: $fUpdate:as' $fUpdate:as'0 $fUpdate:as'1 $fUpdate::0 $fUpdatexs[] $fNubable:: $fNubable:as'$fNubable:as'0 $fNubable::0 $fNubable[][]$fShow:! $fShowAction $fShowAction0 $fShowAction1Superset Data.Monoidmemptysuperset $fSuperset:: $fSuperset[]:$fSuperset[][]$fSubeffect[]Writerst$fEffect[]Writer