Wed Feb 10 19:13:48 CET 2010
Monads and the incredible uselessness of intuition
Yes, a monad is a TYPE constructor, not a value constructor. I.e. it
is a parameterized type, not necessarily a flat data structure that
can be instantiated by calling "M x".
I'm severely lacking in intuition here. Maybe it's time to do some
more standard exercises.
It's mostly about this error message:
Expected kind `* -> *', but `Contstate' has kind `*'
In the instance declaration for `Monad Contstate'
Failed, modules loaded: none.
Monad apparently requires a type constructor with two arguments. (wording?)
No, check this
A 0-param type constructor has kind `*'
A 1-param type constructor has kind `* -> *'