1use crate::apply::Apply; 2use crate::pure::Pure; 3 4pub trait Applicative<A, B>: Apply<B> + Pure<A> {} 5 6impl<A, B> Applicative<A, B> for Option<A> {} 7 8impl<A, B, E> Applicative<A, B> for Result<A, E> {}