Trait lambda_types::Function

source ·
pub trait Function<Input> {
    type Output;
}

Required Associated Types§

Implementors§

source§

impl<A> Function<A> for Compose

source§

type Output = Compose__A<A>

source§

impl<Fn> Function<Fn> for Apply

source§

type Output = Apply__Fn<Fn>

source§

impl<Fn> Function<Fn> for Curry

source§

type Output = Curry__Fn<Fn>

source§

impl<Fn, OtherFn, Input> Function<Input> for Composed<Fn, OtherFn>
where OtherFn: Function<Input>, Fn: Function<<OtherFn as Function<Input>>::Output>,

source§

type Output = <Fn as Function<<OtherFn as Function<Input>>::Output>>::Output

source§

impl<Fn, X, Y> Function<Y> for Curried<Fn, X>
where Fn: Function<X>, <Fn as Function<X>>::Output: Function<Y>,

source§

type Output = <<Fn as Function<X>>::Output as Function<Y>>::Output

source§

impl<I, _Ignored> Function<_Ignored> for Constant<I>

source§

impl<Input> Function<Input> for FirstOf

source§

type Output = Constant<Input>

source§

impl<Input> Function<Input> for Identity

source§

type Output = Input

source§

impl<Lhs> Function<Lhs> for And

source§

type Output = And__Lhs<Lhs>

source§

impl<Lhs> Function<Lhs> for Or

source§

type Output = Or__Lhs<Lhs>

source§

impl<Lhs> Function<Lhs> for Xor

source§

type Output = Xor__Lhs<Lhs>

source§

impl<M> Function<M> for Add

source§

type Output = Add__M<M>

source§

impl<M> Function<M> for Eq

source§

type Output = Eq__M<M>

source§

impl<M> Function<M> for Exponent

source§

type Output = Exponent__M<M>

source§

impl<M> Function<M> for Leq

source§

type Output = Leq__M<M>

source§

impl<M> Function<M> for Subtract

source§

type Output = Subtract__M<M>

source§

impl<N> Function<N> for IsZero

source§

impl<N> Function<N> for Predecessor

source§

type Output = Predecessor__N<N>

source§

impl<N> Function<N> for Successor

source§

type Output = Successor__N<N>

source§

impl<N> Function<N> for ToNumber

source§

impl<P> Function<P> for First
where P: Function<True>,

source§

impl<P> Function<P> for Null

source§

impl<P> Function<P> for Second
where P: Function<False>,

source§

impl<Predicate> Function<Predicate> for If

source§

type Output = If__Predicate<Predicate>

source§

impl<Value> Function<Value> for Not
where Value: Function<False>, <Value as Function<False>>::Output: Function<True>,

source§

impl<X> Function<X> for Pair

source§

type Output = Pair__X<X>

source§

impl<X> Function<X> for Multiply

source§

type Output = Multiply__X<X>

source§

impl<X> Function<X> for Sheinfinkel

source§

type Output = Sheinfinkel__X<X>

source§

impl<_Ignored> Function<_Ignored> for SecondOf

source§

impl<const N: u64> Function<ConstNumber<N>> for ConstIncrement
where ConstNumber<{ _ }>: Sized,

source§

type Output = ConstNumber<{ N + 1 }>