pub trait Apply<'a, A>: Functor<'a, A> {
type Target<T>
where
T: 'a,
A: 'a;
fn apply<B>(
self,
f: <Self as Apply<'a, A>>::Target<ApplyFn<'a, A, B>>
) -> <Self as Apply<'a, A>>::Target<B>
where
B: 'a;
}
Expand description
Apply
takes an F<Fn(A) -> B>
(or, rather, an F<ApplyFn<'a,A, B>>
specifically) and applies it to an F<A>
to produce an F<B>
.