MonadEffect3Unbound

Trait MonadEffect3Unbound 

Source
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§

Source

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).

Source

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>,

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.

Implementors§