A functor with application, providing operations to
- embed pure expressions (pure), and
- sequence computations and combine their results
(<*>).
A minimal complete definition must include implementations of these
functions satisfying the following laws:
The other methods have the following default definitions, which may be
overridden with equivalent specialized implementations:
As a consequence of these laws, the
Functor instance for
f will satisfy
If
f is also a
Monad, it should satisfy
(which implies that
pure and
<*> satisfy the
applicative functor laws).