
8 Aug
2013
8 Aug
'13
4:25 p.m.
Hi Tom,
See [1] for an explanation of free monads in general. For IO in particular, define a functor
data IOF a = GetChar (Char -> a) | PutChar Char a | ...
with constructors for all elementary IO operations.
But how should this work if the user adds an IO operation, e.g by wrapping a C function? Greetings, Daniel