Sun Apr 8 11:55:42 CEST 2012


Called Monoidal in [1] but doesn't seem to be used in this way in
general.  Basic point: define Applicative in a more orthogonal way by
extending the properties of a Functor by:

    unit :: f ()
    <,>  :: f a -> f b -> f (a,b)

where f (a,b) -> f c can just be handled by fmap.

[1] http://www.soi.city.ac.uk/~ross/papers/Applicative.pdf