pub trait Monad<'a, A>: GenType + Functor<'a, A> + Applicative<'a, A> {
fn bind<F, B: 'a>(self, f: F) -> Self::Type<B>
where
F: Fn(A) -> Self::Type<B> + 'a;
}
pub trait Monad<'a, A>: GenType + Functor<'a, A> + Applicative<'a, A> {
fn bind<F, B: 'a>(self, f: F) -> Self::Type<B>
where
F: Fn(A) -> Self::Type<B> + 'a;
}