cgp-monad 0.7.0

Monadic constructs for CGP computation
Documentation
use crate::traits::{ContainsValue, LiftValue, MonadicBind, MonadicTrans};

pub struct IdentMonadic;

impl<M> MonadicTrans<M> for IdentMonadic {
    type M = M;
}

impl<Provider> MonadicBind<Provider> for IdentMonadic {
    type Provider = Provider;
}

impl<T> ContainsValue<T> for IdentMonadic {
    type Value = T;
}

impl<T> LiftValue<T, T> for IdentMonadic {
    type Output = T;

    fn lift_value(value: T) -> T {
        value
    }

    fn lift_output(value: T) -> T {
        value
    }
}