Appl package:semigroupoids

A strong lax semi-monoidal endofunctor. This is equivalent to an Applicative without pure. Laws:
(.) <$> u <.> v <.> w = u <.> (v <.> w)
x <.> (f <$> y) = (. f) <$> x <.> y
f <$> (x <.> y) = (f .) <$> x <.> y
The laws imply that .> and <. really ignore their left and right results, respectively, and really return their right and left results, respectively. Specifically,
(mf <$> m) .> (nf <$> n) = nf <$> (m .> n)
(mf <$> m) <. (nf <$> n) = mf <$> (m <. n)
Transform an Apply into an Applicative by adding a unit.
Wrap an Applicative to be used as a member of Apply