higher 0.2.0

Functors, Applicatives, Monads and other bad ideas
Documentation
use crate::{Apply, Functor, Pure};

/// An `Applicative` functor is anything which implements [`Functor`](Functor),
/// [`Apply`](Apply) and [`Pure`](Pure).
pub trait Applicative<'a, A>: Functor<'a, A> + Apply<'a, A> + Pure<A> {}

impl<'a, M, A> Applicative<'a, A> for M where M: Functor<'a, A> + Apply<'a, A> + Pure<A> {}