[Haskell-cafe] use of modules to save typing
Tillmann Rendel
rendel at informatik.uni-marburg.de
Thu Jul 8 05:55:58 EDT 2010
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
More information about the Haskell-Cafe
mailing list