úÎ>Ō4Ēm      !"#$%&' ( ) * + , - . / 0 1 2 3 4 5 6 7 8 9 : ; < = > ? @ 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 [ \ ] ^ _ ` a b cdefghijkl0mnopqrstuvwxyz{|}~€‚ƒ„…†‡ˆ‰Š‹ŒŽ‘’“”•–;non-portable (multi-param classes, functional dependencies) experimentalMark Snyder, marks@ittc.ku.edu    ;non-portable (multi-param classes, functional dependencies) experimentalMark Snyder, marks@ittc.ku.edu get4 returns the state from the internals of the monad. put& replaces the state inside the monad. Monadic state transformer. 7Maps an old state to a new state inside a state monad. $ The old state is thrown away.  + Main> :t modify ((+1) :: Int -> Int) 1 modify (...) :: (MonadState Int a) => a () This says that  modify (+1) acts over any " Monad that is a member of the  MonadState class,  with an Int state. BGets specific component of the state, using a projection function  supplied.     ;non-portable (multi-param classes, functional dependencies) experimentalMark Snyder, marks@ittc.ku.edu—˜™š›œžŸ ĄĒĢĪĨ +non-portable (multi-parameter type classes) experimentalMark Snyder, marks@ittc.ku.edu !"#$%&wmnopqrstuvͧĻĐŠŦŽ­ŪŊ°ąēģīĩķ·ļđšŧž―ūŋĀÁwxyz{|}~€‚ƒ„…†‡ˆ‰Š‹ŒŽ‘’“”•–ÂÃÄŗ˜™š›œžŸ ĄĒĢĪĨ  !"#$%& !"#$%& !"#$%&zmnopqrstuvͧĻĐŠŦŽ­ŪŊ°ąēģīĩķ·ļđšŧž―ūŋĀÁwxyz{|}~€‚ƒ„…†‡ˆ‰Š‹ŒŽ‘’“”•–ÂÃÄŗ˜™š›œžŸ ĄĒĢĪĨ  !"#$%& ;non-portable (multi-param classes, functional dependencies) experimentalMark Snyder, marks@ittc.ku.edu 'The reader monad transformer. FCan be used to add environment reading functionality to other monads. ()*+,-A more general version of ˜. ./0?mnopqrstuvwxyz{|}~€‚ƒ„…†‡ˆ‰Š‹ŒŽ‘’“”•–ÂÃÄÅ '()*+,-./0 )*+,-'(./0 '(()**+,-./0 1234Æ5678Į9:;<umnopqrstuvͧĻĐŠŦŽ­ŪŊ°ąēģīĩķ·ļđšŧž―ūŋĀÁwxyz{|}~€‚ƒ„…†‡ˆ‰Š‹ŒŽ‘’“”•–ÂÃÄŗ˜™š›œžŸ ĄĒĢĪĨ 123456789:;< 345678129:;< 12234456789:;< ;non-portable (multi-param classes, functional dependencies) experimentalMark Snyder, marks@ittc.ku.edu=>?@ABCDEFGHIJAmnopqrstuvwxyz{|}~€‚ƒ„…†‡ˆ‰Š‹ŒŽ‘’“”•–ÂÃÄÅ =>?@ABCDEFGHIJ?@ABCDE=>FGHIJ=>>?@@ABCDEFGHIJ;non-portable (multi-param classes, functional dependencies)Mark Snyder, marks@ittc.ku.eduDmnopqrstuvwxyz{|}~€‚ƒ„…†‡ˆ‰Š‹ŒŽ‘’“”•–ÂÃÄÅ =>?@ABCDEFGHIJ ;non-portable (multi-param classes, functional dependencies) experimentalMark Snyder, marks@ittc.ku.eduKLMNOPQRSTUVWXAmnopqrstuvwxyz{|}~€‚ƒ„…†‡ˆ‰Š‹ŒŽ‘’“”•–ÂÃÄÅ KLMNOPQRSTUVWXMNOPQRSKLTUVWXKLLMNNOPQRSTUVWX YZ[\]^_`abZmnopqrstuvͧĻĐŠŦŽ­ŪŊ°ąēģīĩķ·ļđšŧž―ūŋĀÁwxyz{|}~€‚ƒ„…†‡ˆ‰Š‹ŒŽ‘’“”•–ÂÃÄÅYZ[\]^_`ab [\]^_YZ`ab YZZ[\\]^_`ab;non-portable (multi-param classes, functional dependencies) experimentalMark Snyder, marks@ittc.ku.edu]mnopqrstuvͧĻĐŠŦŽ­ŪŊ°ąēģīĩķ·ļđšŧž―ūŋĀÁwxyz{|}~€‚ƒ„…†‡ˆ‰Š‹ŒŽ‘’“”•–ÂÃÄÅYZ[\]^_`ab cdefghijklZmnopqrstuvͧĻĐŠŦŽ­ŪŊ°ąēģīĩķ·ļđšŧž―ūŋĀÁwxyz{|}~€‚ƒ„…†‡ˆ‰Š‹ŒŽ‘’“”•–ÂÃÄÅcdefghijkl efghicdjkl cddeffghijklČ !"#$%&'()**++,-./012345 6 6 7 7 8 9 : ; < = * * + + - . / 0 2 3 4 5 > > ? ? @ A B C D E F G H I > > ? ? @ A B C D E F G H I J J K K L M N O P QJJKKLMNOPQRSTRSURSVRSWRXYRSZRS[RX\R]^R_`R]aR]bR]cR]dR]eR]fR]gR]hR]iR]jR]kR]lR]mR]nR]oR]pR]qR]rR]sR]tR]uR]vR]wR]xR]yR]zR]{R]|R]}R]~R]RS€‚ƒ‚„‚…‚†‡ˆ‡‰‡Š‡‹‡ŒŽ‘’“R”•R”–R”—R”˜R”™R”šR”šR”›R”œR”œR”R”žR”žR”ŸR” R” R”ĄR”ĒR”ĒR”ĢR”ĪR”ĪR”ĨR”ĶR”ĶR”§R”ĻR”ĻĐŠĐŦĐށĐ­ , 1Ūmtlx-0.1Control.Monad.IndexControl.Monad.IdentityXControl.Monad.ReaderX.ClassControl.Monad.StateX.ClassControl.Monad.WriterX.ClassControl.Monad.RWSX.ClassControl.Monad.ErrorX.ClassControl.Monad.RWSX.LazyControl.Monad.ReaderXControl.Monad.RWSX.StrictControl.Monad.StateX.LazyControl.Monad.StateX.StrictControl.Monad.WriterX.LazyControl.Monad.WriterX.StrictControl.Monad.RWSXControl.Monad.StateXControl.Monad.WriterXIndexgetValflip23 IdentityX runIdentityX MonadReaderXaskxlocalxasksx MonadStateXgetxputxmodifyxgetsx MonadWriterXtellxlistenxpassxlistensxcensorx MonadRWSX MonadErrorX throwErrorx catchErrorxRWSTXRWSXrunRWSXevalRWSXexecRWSXmapRWSXwithRWSXrunRWSTX evalRWSTX execRWSTXmapRWSTX withRWSTXReaderTXReaderX runReaderX mapReaderx withReaderx runReaderTX mapReaderTX withReaderTXStateTXStateX runStateX evalStatex execStatex mapStatex withStatex runStateTX evalStateTX execStateTX mapStateTX withStateTXWriterTXWriterX runWriterX execWriterX mapWriterX runWriterTX execWriterTX mapWriterTXbaseGHC.Basefail>>=>>returnControl.Monad.FixmfixMonadFunctorMonadFix Control.Monad MonadPlus Data.FunctionfixapliftM5liftM4liftM3liftM2liftMunlesswhen replicateM_ replicateMfoldM_foldM zipWithM_zipWithM mapAndUnzipMjoinforever<=<>=>msumforM_forMfilterMguardmapM_mapM sequence_sequence=<<mplusmzerofmap mtl-1.1.1.0Control.Monad.Reader.Classaskslocalask MonadReaderControl.Monad.State.Classgetsmodifyputget MonadStateControl.Monad.Writer.Classcensorlistenspasslistentell MonadWriter Data.MonoidmconcatmappendmemptyMonoidgetDualDualappEndoEndogetAllAllgetAnyAnygetSumSum getProductProductgetFirstFirstgetLastLastControl.Monad.Translift MonadTransliftIOMonadIO