
15 Feb
2007
15 Feb
'07
8:07 a.m.
i.e. to use Monad.Writer in stead of Monad.State. The point is that for example 'typedProgram' does not really depend on the contents of 'log', but the dependencies in your code don't express this. One should switch from
Log -> (a, Log)
to
(a, Log -> Log)
or even
(a, Log)
if Log already has a natural monoid structure. Yes of course you're quite right, in general I would have the last version ie (a, Log). I did not wish to muddy the example, but probably it was not helpful to have 'typedProgram' depend on the contents of 'log'.
regards allan