pub trait MonadEffect5Unbound<E: Effect5Unbound> {
// Required methods
fn pure<S, T>(
value: T,
) -> <E::HktWitness as HKT6Unbound>::Type<E::Fixed1, E::Fixed2, E::Fixed3, S, S, T>;
fn ibind<S1, S2, S3, T, U, Func>(
effect: <E::HktWitness as HKT6Unbound>::Type<E::Fixed1, E::Fixed2, E::Fixed3, S1, S2, T>,
f: Func,
) -> <E::HktWitness as HKT6Unbound>::Type<E::Fixed1, E::Fixed2, E::Fixed3, S1, S3, U>
where Func: FnMut(T) -> <E::HktWitness as HKT6Unbound>::Type<E::Fixed1, E::Fixed2, E::Fixed3, S2, S3, U>;
}Expand description
Monadic logic for Parametric Effects (Arity 5 Unbound).
Enables state transitions (S1 -> S2) within the effect system.
Required Methods§
Sourcefn pure<S, T>(
value: T,
) -> <E::HktWitness as HKT6Unbound>::Type<E::Fixed1, E::Fixed2, E::Fixed3, S, S, T>
fn pure<S, T>( value: T, ) -> <E::HktWitness as HKT6Unbound>::Type<E::Fixed1, E::Fixed2, E::Fixed3, S, S, T>
Lifts a pure value into the parametric effect container.
The state S remains unchanged (S -> S).
Sourcefn ibind<S1, S2, S3, T, U, Func>(
effect: <E::HktWitness as HKT6Unbound>::Type<E::Fixed1, E::Fixed2, E::Fixed3, S1, S2, T>,
f: Func,
) -> <E::HktWitness as HKT6Unbound>::Type<E::Fixed1, E::Fixed2, E::Fixed3, S1, S3, U>where
Func: FnMut(T) -> <E::HktWitness as HKT6Unbound>::Type<E::Fixed1, E::Fixed2, E::Fixed3, S2, S3, U>,
fn ibind<S1, S2, S3, T, U, Func>(
effect: <E::HktWitness as HKT6Unbound>::Type<E::Fixed1, E::Fixed2, E::Fixed3, S1, S2, T>,
f: Func,
) -> <E::HktWitness as HKT6Unbound>::Type<E::Fixed1, E::Fixed2, E::Fixed3, S1, S3, U>where
Func: FnMut(T) -> <E::HktWitness as HKT6Unbound>::Type<E::Fixed1, E::Fixed2, E::Fixed3, S2, S3, U>,
Indexed Bind: Chains computations while tracking state transitions.
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.