Sun Jul 19 20:29:12 EDT 2015

Curried instances

Here's something I found weird when I first saw it, and now picking up
Haskell again after a long pause, I have trouble articulating.  So
re-learn why (->) has an applicative instance.

Applicative instances are of kind * -> *, while function application
is of kind * -> * -> * corresponding to types:

  a -> b   or   (->) a b

It is possible to "curry" or "partially apply" instances (I don't know
the proper term), e.g. as in:

  Applicative ((->) a)