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

Reply via email to