úÎ+ñ'æ.      !"#$%&'()*+,-nGADTs, EmptyDataDecls, GeneralizedNewtypeDeriving, MultiParamTypeClasses, FlexibleInstances  experimental (Matthew Mirman <mmirman@andrew.cmu.edu> None value+ acts like an imperative return. It passes - the given value to the return continuation. #Although the functional dependency b -> i is declared, " it does not do anything useful.  (init, check, incr) acts like its imperative for counterpart  exists the current loop. * continues the current loop, passing over # any control flow that is defined. 2 executes the given action (or value) before the  function returns. 1 takes an MIO action as returned by a function,  and lifts it into IO.  foo7 takes an ImperativeMonad action and removes it from it's ? specific function context, specifically making it applicable ! in the body of other functions. ()a gets a reference/"pointer to the variable specified  should just be used where the - type can be automatically infered and we don't need an initial value 4 Use caution, as it is simply an alternate name for . 8 constructs a new reference to the specified pure value  variable  value executes value and writes it  to the location pointed to by variable (check) acts like its imperative while counterpart.  (check) act only performs act if check evaluates to true - it is specifically a value in its argument. + makes a modification assignment operator # out of a binary haskell function. @ The suggested use is to replicate functionality of assignments  like -= or %= from C style languages.  action takes a haskell / action" and makes it useable from within  the MIO monad. 60123456789:; <= >?@ABCDEFGHIJ   *0123546789:; <= >?@ABCDEFGHIJNoMonomorphismRestriction experimental'Matthew Mirman <mmirman@andrew.cmu.edu>None,, f& turns a pure function into one which : gets executes its arguments and returns their value as a  function. It is defined using liftOp.  !"#$%&'()*+, !"#$%&'()*+,"! #$&%'()*+, !"#$%&'()*+,TemplateHaskell experimental'Matthew Mirman <mmirman@andrew.cmu.edu>None-KLMN---KLMNMany GHC only extensions  experimental (Matthew Mirman <mmirman@andrew.cmu.edu> None,  !"#$%&'()*+-O      !"#$%&'()*+,-./0123456789:;<=>? @ABCDEFGHIJKLMNOPQRSTUVWImperativeHaskell-2.0.0.0"Control.Monad.Imperative.Internals"Control.Monad.Imperative.Operators(Control.Monad.Imperative.FunctionFactoryControl.Monad.ImperativeCStatereturn'HasValuevalVCLitMIOTyCompTyValTyVarTyInFuncTyInLoopfor'break' continue'defer' runImperativefunction&autonew=:while'if'modifyOpio+=:*=:-=:%=:<.>.>=.<=.==.+.-.*.%./.&&.||.~.liftOp2liftOpbaseGHC.Err undefinedghc-prim GHC.TypesIORetTygetStatetoLoopControlInLoop InFunctionRgetMIORetContMIO_IRCont getReturnstatefulRetCont runWithRet wrapState $fIsStringV$fNumV$fShowV$fEqV$fCStateTyInLoop$fCStateTyInFunc$fHasValuerIOi$fHasValuerMIOi $fHasValuerVa $fHasValuerVi$fHasValuerVi0tyToPatsp2eps2nsnn2st