1 2 3 4 5 6 7 8 9 10 11 12 13
pub trait Applicative<T, F> {} pub trait Pure<T> { type Out; } pub trait FMap<T, F> where F: Fmapper<T>, { type Out; } pub trait Fmapper<T> { type Out; }