higher_cat/
applicative.rs

1use crate::{Apply, Functor, Pure};
2
3/// An `Applicative` functor is anything which implements `Functor`, `Apply` and
4/// `Pure`.
5pub trait Applicative<A, F, B>: Functor<A, B> + Apply<A, F, B> + Pure<A>
6where
7    F: Fn(A) -> B,
8{
9}
10
11impl<M, A, F, B> Applicative<A, F, B> for M
12where
13    M: Functor<A, B> + Apply<A, F, B> + Pure<A>,
14    F: Fn(A) -> B,
15{
16}