Value

Trait Value 

Source
pub trait Value {
    type Type: Type;
}

Required Associated Types§

Implementations on Foreign Types§

Source§

impl Value for ()

Source§

impl<TA: Type, TB: Type, A: Value<Type = TA>, B: Value<Type = TB>> Value for (A, B)

Implementors§

Source§

impl Value for False

Source§

impl Value for Neg

Source§

impl Value for True

Source§

impl Value for Z

Source§

impl<A: Type, B: Type> Value for Fst<A, B>

Source§

impl<A: Type, B: Type> Value for Snd<A, B>

Source§

impl<A: Type, B: Type, C: Type, F: Value<Type = Lambda<A, B>>, G: Value<Type = Lambda<B, C>>> Value for Compose<F, G>

Source§

type Type = Lambda<A, C>

Source§

impl<A: Type, B: Type, MB: Type + Monad<Wrapped = B>, M: Monad<Wrapped = A, HKT<B> = MB>, F: Value<Type = Lambda<A, MB>>> Value for BindOn<M, F>

Source§

type Type = Lambda<M, MB>

Source§

impl<A: Type, B: Type, T: Type + Functor<A>, F: Value<Type = Lambda<A, B>>> Value for MapOn<T, F>

Source§

type Type = Lambda<T, <T as Functor<A>>::HKT<B>>

Source§

impl<A: Value<Type = Nat>> Value for AddOn<A>

Source§

impl<MT: Monad> Value for Pure<MT>

Source§

type Type = Lambda<<MT as Monad>::Wrapped, MT>

Source§

impl<T: Eq, I: Value<Type = T>> Value for EqTo<I>

Source§

impl<T: Type> Value for Empty<T>

Source§

type Type = List<T>

Source§

impl<T: Type> Value for Flatten<T>

Source§

impl<T: Type> Value for Id<T>

Source§

type Type = Lambda<T, T>

Source§

impl<T: Type> Value for IsNoting<T>

Source§

impl<T: Type> Value for Nothing<T>

Source§

impl<T: Type> Value for ToList<T>

Source§

type Type = Lambda<Maybe<T>, List<T>>

Source§

impl<T: Type, A: Type, B: Type, Fa: Value<Type = Lambda<A, T>>, Pa: Value<Type = A>, Fb: Value<Type = Lambda<B, T>>, Pb: Value<Type = B>> Value for LambdaBranch<Fa, Pa, Fb, Pb>

Source§

impl<T: Type, F: Value<Type = Lambda<T, Bool>>> Value for FilterOn<F>

Source§

type Type = Lambda<List<T>, List<T>>

Source§

impl<T: Type, I: Value<Type = T>> Value for ContainIn<I>

Source§

impl<T: Type, I: Value<Type = T>> Value for PushTo<I>

Source§

type Type = Lambda<List<T>, List<T>>

Source§

impl<T: Type, I: Value<Type = T>, Next: Value<Type = List<T>>> Value for Segment<I, Next>

Source§

type Type = List<T>

Source§

impl<T: Type, L: Value<Type = List<T>>> Value for ConcatWith<L>

Source§

type Type = Lambda<List<T>, List<T>>

Source§

impl<T: Type, V: Value<Type = T>> Value for Just<V>

Source§

impl<T: Type, V: Value<Type = T>> Value for WhenMaybe<V>

Source§

impl<T: Type, V: Value<Type = T>> Value for WhenMaybeF<V>

Source§

impl<T: Value<Type = Bool>> Value for OrOn<T>

Source§

impl<T: Value<Type = Nat>> Value for S<T>