pub trait LinearMonad: LinearApplicative + Lift {
// Required method
fn lbind<TIn, TOut, F>(
x: <Self as WithTypeArg<TIn>>::Type,
f: F,
) -> <Self as WithTypeArg<TOut>>::Type
where Self: WithTypeArg<TIn> + WithTypeArg<TOut>,
F: FnOnce(TIn) -> <Self as WithTypeArg<TOut>>::Type;
// Provided methods
fn lbind_ignore<TIn, TOut>(
x: <Self as WithTypeArg<TIn>>::Type,
y: &<Self as WithTypeArg<TOut>>::Type,
) -> <Self as WithTypeArg<TOut>>::Type
where Self: WithTypeArg<TIn> + WithTypeArg<TOut>,
<Self as WithTypeArg<TOut>>::Type: Clone { ... }
fn ljoin<T>(
x: <Self as WithTypeArg<<Self as WithTypeArg<T>>::Type>>::Type,
) -> <Self as WithTypeArg<T>>::Type
where Self: WithTypeArg<T> + WithTypeArg<<Self as WithTypeArg<T>>::Type> { ... }
}
Required Methods§
fn lbind<TIn, TOut, F>(
x: <Self as WithTypeArg<TIn>>::Type,
f: F,
) -> <Self as WithTypeArg<TOut>>::Typewhere
Self: WithTypeArg<TIn> + WithTypeArg<TOut>,
F: FnOnce(TIn) -> <Self as WithTypeArg<TOut>>::Type,
Provided Methods§
fn lbind_ignore<TIn, TOut>( x: <Self as WithTypeArg<TIn>>::Type, y: &<Self as WithTypeArg<TOut>>::Type, ) -> <Self as WithTypeArg<TOut>>::Type
fn ljoin<T>( x: <Self as WithTypeArg<<Self as WithTypeArg<T>>::Type>>::Type, ) -> <Self as WithTypeArg<T>>::Type
Dyn Compatibility§
This trait is not dyn compatible.
In older versions of Rust, dyn compatibility was called "object safety", so this trait is not object safe.