MonadEffect4Unbound

Trait MonadEffect4Unbound 

Source
pub trait MonadEffect4Unbound<E: Effect4Unbound> {
    // Required methods
    fn pure<S, T>(
        value: T,
    ) -> <E::HktWitness as HKT5Unbound>::Type<E::Fixed1, E::Fixed2, S, S, T>;
    fn ibind<S1, S2, S3, T, U, Func>(
        effect: <E::HktWitness as HKT5Unbound>::Type<E::Fixed1, E::Fixed2, S1, S2, T>,
        f: Func,
    ) -> <E::HktWitness as HKT5Unbound>::Type<E::Fixed1, E::Fixed2, S1, S3, U>
       where Func: FnMut(T) -> <E::HktWitness as HKT5Unbound>::Type<E::Fixed1, E::Fixed2, S2, S3, U>;
}
Expand description

Monadic logic for Parametric Effects (Arity 4 Unbound).

Enables state transitions (S1 -> S2) within the effect system.

Required Methods§

Source

fn pure<S, T>( value: T, ) -> <E::HktWitness as HKT5Unbound>::Type<E::Fixed1, E::Fixed2, 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 HKT5Unbound>::Type<E::Fixed1, E::Fixed2, S1, S2, T>, f: Func, ) -> <E::HktWitness as HKT5Unbound>::Type<E::Fixed1, E::Fixed2, S1, S3, U>
where Func: FnMut(T) -> <E::HktWitness as HKT5Unbound>::Type<E::Fixed1, E::Fixed2, 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.

Implementors§