
4 Aug
2007
4 Aug
'07
11:38 a.m.
Hi Claus,
but the point is that you have a standard set of operations when working at that level, including conditionals, assignments, pointer increments, read/write, etc. you only need to define lifted variants of each of those operations *once*, in a library.
I think that defining lifted versions of every function is dangerous, especially in a widely-used library. Monadic code will start to look pure, and before long someone will be using let expressions and where blocks to share monadic computations rather than using do blocks to share the *results* of monadic computations. Matt.