pub trait MonadEffect3Unbound<E: Effect3Unbound> {
// Required methods
fn pure<S, T>(
value: T,
) -> <E::HktWitness as HKT4Unbound>::Type<E::Fixed1, S, S, T>;
fn ibind<S1, S2, S3, T, U, Func>(
effect: <E::HktWitness as HKT4Unbound>::Type<E::Fixed1, S1, S2, T>,
f: Func,
) -> <E::HktWitness as HKT4Unbound>::Type<E::Fixed1, S1, S3, U>
where Func: FnMut(T) -> <E::HktWitness as HKT4Unbound>::Type<E::Fixed1, S2, S3, U>;
}Expand description
Monadic logic for Parametric Effects (Arity 3 Unbound).
Enables state transitions (S1 -> S2) within the effect system.
Required Methods§
Sourcefn pure<S, T>(
value: T,
) -> <E::HktWitness as HKT4Unbound>::Type<E::Fixed1, S, S, T>
fn pure<S, T>( value: T, ) -> <E::HktWitness as HKT4Unbound>::Type<E::Fixed1, 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 HKT4Unbound>::Type<E::Fixed1, S1, S2, T>,
f: Func,
) -> <E::HktWitness as HKT4Unbound>::Type<E::Fixed1, S1, S3, U>
fn ibind<S1, S2, S3, T, U, Func>( effect: <E::HktWitness as HKT4Unbound>::Type<E::Fixed1, S1, S2, T>, f: Func, ) -> <E::HktWitness as HKT4Unbound>::Type<E::Fixed1, S1, S3, U>
Indexed Bind: Chains computations while tracking state transitions.
S1 -> S2 (first step) AND S2 -> S3 (second step) => S1 -> S3 (result).
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.