Thu Aug 27 19:12:49 CEST 2009

Monad transformers / Arrows

I'm interested to find out the link between:

  State threading using Monads and Arrows

  Monad / Arrow transformation (building new such constructs by
  composing the others).

More specifically, I've run into the case in concatenative programming
where you want to thread things different from the stack, and where
you also want to combine different threading mechanisms (i.e. a data
stack and a compilation `writer' monad).

However, the way (i understand) that monad transformers work is that
you always need to pick an _order_ of wrapping: it isn't a
side-by-side thing like i.e. linear operators and vector subspaces.
My hunch is that the latter is about Arrows.