Michael Mossey wrote:
incrCursor :: State PlayState ()
Additional question: what is proper terminology here?
Proper terminology for monadic things is somewhat debated.
"incrCursor is a monad"
This is not true.
"incrCursor is a monadic type"
incrCursor is not a type, so this can't be correct. However, "incrCursor
has a monadic type" is somewhat reasonable. However, I would avoid it
because it is quite vague.
"incrCursor is a monadic function"
"incrCursor is a monadic computation"
These sound good to me. I would prefer the latter, because incrCursor
does not take any arguments, so it is debatable whether it is a
function. From my point of view, "monadic functions" should mean a
function of type (a -> m b) where m is a monad, i.e. arrows in a Kleisli
category.
An alternative to "monadic computation" would be "monadic action".
However, since we know which monad it is, I would prefer "incrCursor is
a state transformer" or even "incrCursor is a PlayState transformer".
"State is a monad"
"State is a type constructor of a monad"
"State is a monadic type"
None of these seem to be true. However, the following is: "(State
PlayState) is a monad".
If you want to say something about State, maybe "State is a parametric
monad" or "State is a family of monads" is appropriate.
Tillmann
_______________________________________________
Haskell-Cafe mailing list
Haskell-Cafe@haskell.org
http://www.haskell.org/mailman/listinfo/haskell-cafe