úÎ/i,Ê+      !"#$%&'()*nGADTs, EmptyDataDecls, GeneralizedNewtypeDeriving, MultiParamTypeClasses, FlexibleInstances  experimental (Matthew Mirman <mmirman@andrew.cmu.edu> None variable  value executes value and writes it  to the location pointed to by variable 0 can act as returnF or returnV depending on use 7 if it does not work, it is likely that type inference . could not figure out a sensible alternative.   value( acts like the imperative return, where = if called, it will exit the current function and place the ; returned value into the current continuation. Note, this  doesn'2t work inside of loops. Inside of loops, we need      value( acts like the imperative return, where = if called, it will exit the current function and place the ; returned value into the current continuation. Note, this  doesn' t work as a last function call.   foo7 takes an ImperativeMonad action and removes it from it's ? specific function context, specifically making it applicable ! in the body of other functions.  exists the current loop. H if called outside of a loop, rather than throwing a compilation error, ( it will simply return a runtime error. * continues the current loop, passing over # any control flow that is defined. H if called outside of a loop, rather than throwing a compilation error, ( it will simply return a runtime error. ()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 (init, check, incr) acts like its imperative for counterpart (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.  ,-./012     ,-./012NoMonomorphismRestriction  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****Many GHC only extensions  experimental (Matthew Mirman <mmirman@andrew.cmu.edu> None'  !"#$%&'(*3      !"#$%&'()*+,-./0123456789:ImperativeHaskell-1.1.0.1"Control.Monad.Imperative.Internals"Control.Monad.Imperative.Operators(Control.Monad.Imperative.FunctionFactoryControl.Monad.Imperative=:VCLitreturn'ValTpCompValVarMIOreturnFreturnV runImperativefunctionbreak' continue'val&autonewfor'while'if'modifyOp+=:*=:-=:%=:<.>.>=.<=.==.+.-.*.%./.&&.||.~.liftOp2liftOpbaseGHC.Err undefined$fAssignableMIO $fAssignableV$fReturnablebb$fReturnableb() $fValTpComp $fValTpVal $fValTpVar