Thanks Daniel,

Better refactorability.
If you're using monadic style, changing from, say,
State Thing
to
StateT Thing OtherMonad

or from
StateT Thing FirstMonad
to
StateT Thing SecondMonad

typically requires only few changes. Explicit state-passing usually
requires more changes.

So, performance gain (runtime/memory) is not a side effect of Monadic style right?
 
Yes. If you write to a mutable array, you really write to the memory
location without extra copying.


How's this done? Can it be done in Haskell without FFI?

--
Regards,
Kashyap