U       !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[ \ ] ^ _ ` a b c d e f g h i j k l m n o p q r s t u v w x y z { | } ~            Safe !"(3579>KL  Safe !"(3579>KLAll methods must be defined.,The idea is: Any monad stack is instance of MonadMultiReader a, iff the stack contains a MultiReaderT x with a element of x.-Access to a specific type in the environment.  Safe !"(3579>KLAll methods must be defined.,The idea is: Any monad stack is instance of MonadMultiState a, iff the stack contains a  MultiStateT x with a element of x.&state set function for values of type a.&state get function for values of type a.  Safe!"(34579>IKLN         None!"(3579>KLNone!"(3579>KLIA state monad parameterized by the list of types x of the state to carry. Similar to State s = StateT s Identity1A MultiState transformer carrying an empty state.+A State transformer monad patameterized by:-x - The list of types constituting the state,m - The inner monad. corresponds to mtl's 0, but can contain a heterogenous list of types.AThis heterogenous list is represented using Types.Data.List, i.e:'[] - The empty list,a ': b - A list where a is an arbitrary type and b is the rest list. For example, 0MultiStateT '[Int, Bool] :: (* -> *) -> (* -> *)4is a State wrapper containing the types [Int, Bool].AA raw extractor of the contained HList (i.e. the complete state).SMap both the return value and the state of a computation using the given function.. !"#$%&'()*+,-./01 !"#$%&'# !"#$%&'()*+,-./01# !"#$%&'()*+,-./01, !"#$%&'()*+,-./01 !"#$%&'None !"(3579>KL" !"#$%&'()*+,-/01" !"#$%&'()*+,-/01None !"(3579>KL# !"#$%&'()*+,-./01# !"#$%&'()*+,-./01None!"(3579>KL2YA reader monad parameterized by the list of types x of the environment / input to carry. Similar to Reader r = ReaderT r Identity32A MultiReader transformer carrying an empty state.4,A Reader transformer monad patameterized by:Hx - The list of types constituting the environment / input (to be read),m - The inner monad.4 corresponds to mtl's (0, but can contain a heterogenous list of types.AThis heterogenous list is represented using Types.Data.List, i.e:'[] - The empty list,a ': b - A list where a is an arbitrary type and b is the rest list. For example, 1MultiReaderT '[Int, Bool] :: (* -> *) -> (* -> *)9is a Reader transformer containing the types [Int, Bool].7BA raw extractor of the contained HList (i.e. the complete Reader).9YMap both the return value and the environment of a computation using the given function.?Note that there is a difference to mtl's ReaderT, where it is not$ possible to modify the environment. 23456789:;<=>?@ABC)*+,-./012345623456789:;<=>?@ABC45632:;<=>?@ABC97823456789:;<=>?@ABC)*+,-./0123456None !"(3579>KL23456789:;<=>?@AC45632:;<=>?@AC978None !"(3579>KL23456789:;<=>?@ABC45632:;<=>?@ABC978None!"(34579>IKLNE2A MultiWriter transformer carrying an empty state.F,A Writer transformer monad patameterized by:=x - The list of types that can be written (Monoid instances).m - The inner monad.F corresponds to mtl's 70, but can contain a heterogenous list of types.AThis heterogenous list is represented using Types.Data.List, i.e:'[] - The empty list,a ': b - A list where a is an arbitrary type and b is the rest list. For example, 1MultiWriterT '[Int, Bool] :: (* -> *) -> (* -> *)9is a Writer transformer containing the types [Int, Bool].IAA raw extractor of the contained HList (i.e. the complete state).KSMap both the return value and the state of a computation using the given function.%DEFGHIJKLMNOPQRSTUVWXYZ89:;<=>?@ABCDEDEFGHIJKLMNOPQRSTUVWXYZFGHEDLMNOPQRSTUVWXYZKIJ#DEFGHIJKLMNOPQRSTUVWXYZ89:;<=>?@ABCDENone!"(34579>KLDEFGHIJKLMNOPQRSTUVWXYZFGHEDLMNOPQRSTUVWXYZKIJNone!"(34579>KLDEFGHIJKLMNOPQRSTUVWXYFGHEDLMNOPQRSTUVWXYKIJ None!"(3579>KL[YA reader monad parameterized by the list of types x of the environment / input to carry. Similar to Reader r = ReaderT r Identity\2A MultiReader transformer carrying an empty state.],A Reader transformer monad patameterized by:Hx - The list of types constituting the environment / input (to be read),m - The inner monad.] corresponds to mtl's (0, but can contain a heterogenous list of types.AThis heterogenous list is represented using Types.Data.List, i.e:'[] - The empty list,a ': b - A list where a is an arbitrary type and b is the rest list. For example, 1MultiReaderT '[Int, Bool] :: (* -> *) -> (* -> *)9is a Reader transformer containing the types [Int, Bool].`BA raw extractor of the contained HList (i.e. the complete Reader).bYMap both the return value and the environment of a computation using the given function.?Note that there is a difference to mtl's ReaderT, where it is not$ possible to modify the environment. [\]^_`abcdefghijklFGHIJKLMNOPQRS[\]^_`abcdefghijkl]^_\[cdefghijklb`a[\]^_`abcdefghijklFGHIJKLMNOPQRS None!"(34579>IKLNn2A MultiWriter transformer carrying an empty state.o,A Writer transformer monad patameterized by:=x - The list of types that can be written (Monoid instances).m - The inner monad.o corresponds to mtl's T0, but can contain a heterogenous list of types.AThis heterogenous list is represented using Types.Data.List, i.e:'[] - The empty list,a ': b - A list where a is an arbitrary type and b is the rest list. For example, 1MultiWriterT '[Int, Bool] :: (* -> *) -> (* -> *)9is a Writer transformer containing the types [Int, Bool].rAA raw extractor of the contained HList (i.e. the complete state).tSMap both the return value and the state of a computation using the given function.%mnopqrstuvwxyz{|}~UVWXYZ[\]^_`abmnopqrstuvwxyz{|}~opqnmuvwxyz{|}~trs#mnopqrstuvwxyz{|}~UVWXYZ[\]^_`ab None!"(3579>KLIA state monad parameterized by the list of types x of the state to carry. Similar to State s = StateT s Identity1A MultiState transformer carrying an empty state.+A State transformer monad patameterized by:-x - The list of types constituting the state,m - The inner monad. corresponds to mtl's c0, but can contain a heterogenous list of types.AThis heterogenous list is represented using Types.Data.List, i.e:'[] - The empty list,a ': b - A list where a is an arbitrary type and b is the rest list. For example, 0MultiStateT '[Int, Bool] :: (* -> *) -> (* -> *)4is a State wrapper containing the types [Int, Bool].AA raw extractor of the contained HList (i.e. the complete state).SMap both the return value and the state of a computation using the given function..defghijklmnopq##,defghijklmnopq None!"(34579>IKLNArstuvwxyz{|}~::?rstuvwxyz{|}~None !"(3579>KL:: None!"(34579>IKLNA : : ?  !"#$%&'())*+,-./0123456789:;<=>?@ABCDEFGHHI+,JKLMNOPQRSDTUVVW+,XYZ[\]^_`abcdefE F G H H I + , J K L M N O P Q R S D T U V V W + , X Y Z [ \ ] ^ _ ` a b c d e f E ' ( ) ) * + , - . / 0 1 2 3 4 5 6 7 8 9 : ; < = > ? @ A B C D E g h i i j k l m n o p q O P Q R _ ` a b c d e f 6 7 8 9 : ; < = > ? @ A S B D r E s C t u v w x y z { g h i i j k l m n o p q O P Q R _ ` a b c d e f 6 7 8 9 : ; < = > ? @ A S B D r E s C t u v w x y z {|}~   Cmq74D6TIde5KMFwrkET9d%Control.Monad.Trans.MultiWriter.Class%Control.Monad.Trans.MultiReader.Class$Control.Monad.Trans.MultiState.ClassData.HList.HListData.HList.ContainsType#Control.Monad.Trans.MultiState.Lazy$Control.Monad.Trans.MultiReader.Lazy$Control.Monad.Trans.MultiWriter.Lazy&Control.Monad.Trans.MultiReader.Strict&Control.Monad.Trans.MultiWriter.Strict%Control.Monad.Trans.MultiState.Strict!Control.Monad.Trans.MultiRWS.Lazy#Control.Monad.Trans.MultiRWS.StrictControl.Monad.MultiStateControl.Monad.Trans.MultiStateControl.Monad.MultiReaderControl.Monad.Trans.MultiReaderControl.Monad.MultiWriterControl.Monad.Trans.MultiWriterControl.Monad.Trans.MultiRWSMonadMultiWritermTellMonadMultiReadermAskMonadMultiStatemSetmGetHInithInithSplitAppendHListHNil:+:hAppend ContainsType setHListElem getHListElem MultiStateMultiStateTNull MultiStateTrunMultiStateTRawmGetRawmPutRawmapMultiStateTrunMultiStateTrunMultiStateTASrunMultiStateTSArunMultiStateTArunMultiStateTSrunMultiStateT_runMultiStateTNilrunMultiStateTNil_withMultiStatewithMultiStateASwithMultiStateSAwithMultiStateAwithMultiStateSwithMultiState_withMultiStateswithMultiStatesASwithMultiStatesSAwithMultiStatesAwithMultiStatesSwithMultiStates_withoutMultiState inflateState inflateReader inflateWriter MultiReaderMultiReaderTNull MultiReaderTrunMultiReaderTRawmapMultiReaderTrunMultiReaderTrunMultiReaderT_runMultiReaderTNilrunMultiReaderTNil_withMultiReaderwithMultiReader_withMultiReaderswithMultiReaders_withoutMultiReader MultiWriterMultiWriterTNull MultiWriterTrunMultiWriterTRawmapMultiWriterTrunMultiWriterTrunMultiWriterTAWrunMultiWriterTWArunMultiWriterTWrunMultiWriterTNilrunMultiWriterTNil_withMultiWriterwithMultiWriterAWwithMultiWriterWAwithMultiWriterWwithMultiWriterswithMultiWritersAWwithMultiWritersWAwithMultiWritersWMultiRWS MultiRWSTNull MultiRWSTrunMultiRWSTRaw runMultiRWSTrunMultiRWSTASW runMultiRWSTWrunMultiRWSTAWrunMultiRWSTSWrunMultiRWSTNilrunMultiRWSTNil_inflateMultiReaderinflateMultiWriterinflateMultiStatemGetRawRmPutRawRmGetRawWmPutRawWmGetRawSmPutRawS mapMultiRWST$fMonadMultiWriterat$fMonadMultiReaderat$fMonadMultiStateat$fHInit: $fHInit[]TFCo:R:Append:l2TFCo:R:Append[]l2 $fEqHList $fEqHList0 $fMonoidHList$fMonoidHList0 $fShowHList $fShowHList0$fContainsTypea:$fContainsTypea:0trans_GZTjP9K5WFq01xC9BAGQpFControl.Monad.Trans.State.LazyStateT$fMonadBaseControlbMultiStateT$fMonadTransControlMultiStateT$fMonadBasebMultiStateT$fMonadPlusMultiStateT$fAlternativeMultiStateT$fMonadIOMultiStateT$fMonadWriterwMultiStateT$fMonadStatesMultiStateT$fMonadFixMultiStateT$fMonadMultiStateaMultiStateT$fMonadTransMultiStateT$fMonadMultiStateT$fApplicativeMultiStateT$fFunctorMultiStateTControl.Monad.Trans.ReaderReaderT$fMonadBaseControlbMultiReaderT$fMonadTransControlMultiReaderT$fMonadBasebMultiReaderT$fMonadPlusMultiReaderT$fAlternativeMultiReaderT$fMonadIOMultiReaderT$fMonadWriterwMultiReaderT$fMonadStatesMultiReaderT$fMonadFixMultiReaderT$fMonadMultiReaderaMultiReaderT$fMonadTransMultiReaderT$fMonadMultiReaderT$fApplicativeMultiReaderT$fFunctorMultiReaderTControl.Monad.Trans.Writer.LazyWriterT$fMonadBaseControlbMultiWriterT$fMonadTransControlMultiWriterT$fMonadBasebMultiWriterT$fMonadPlusMultiWriterT$fAlternativeMultiWriterT$fMonadIOMultiWriterT$fMonadWriterwMultiWriterT$fMonadStatesMultiWriterT$fMonadFixMultiWriterT$fMonadMultiWriteraMultiWriterT$fMonadTransMultiWriterT$fMonadMultiWriterT$fApplicativeMultiWriterT$fFunctorMultiWriterT!Control.Monad.Trans.Writer.Strict Control.Monad.Trans.State.Strict$fMonadBaseControlbMultiRWST$fMonadTransControlMultiRWST$fMonadBasebMultiRWST$fMonadPlusMultiRWST$fAlternativeMultiRWST$fMonadIOMultiRWST$fMonadFixMultiRWST$fMonadMultiStateaMultiRWST$fMonadMultiWriteraMultiRWST$fMonadMultiReaderaMultiRWST$fMonadTransMultiRWST$fMonadMultiRWST$fApplicativeMultiRWST$fFunctorMultiRWST