Trait tylisp::engine::FunCall[][src]

pub trait FunCall<Args>: Call<Conv = Func> {
    type Result;
}
Expand description

A function whose arguments are pre-evaluated

Note that it is acceptable to arbitrarily constrain this impl, and also to provide multiple impls for the same type, as long as they do not overlap.

Args is an hlist of all the arguments passed to the function.

Associated Types

Implementors

impl FunCall<HCons<HNil, HCons<HNil, HNil>>> for DifferP where
    HCons<Ret, HCons<Quote<False>, HNil>>: Eval
[src]

impl FunCall<HCons<B0, HNil>> for Not where
    HCons<Ret, HCons<Quote<True>, HNil>>: Eval
[src]

impl FunCall<HCons<B1, HNil>> for Not where
    HCons<Ret, HCons<Quote<False>, HNil>>: Eval
[src]

impl<'a, Func, L: List> FunCall<HCons<Func, HCons<&'a L, HNil>>> for MapRef where
    HCons<If, HCons<HCons<EmptyP, HCons<Quote<L>, HNil>>, HCons<HNil, HCons<HCons<Cons, HCons<HCons<Func, HCons<Quote<&'a L::Head>, HNil>>, HCons<HCons<MapRef, HCons<Func, HCons<Quote<&'a L::Tail>, HNil>>>, HNil>>>, HNil>>>>: Eval
[src]

type Result = <HCons<If, HCons<HCons<EmptyP, HCons<Quote<L>, HNil>>, HCons<HNil, HCons<HCons<Cons, HCons<HCons<Func, HCons<Quote<&'a L::Head>, HNil>>, HCons<HCons<MapRef, HCons<Func, HCons<Quote<&'a L::Tail>, HNil>>>, HNil>>>, HNil>>>> as Eval>::Result

impl<A, B> FunCall<HCons<PhantomData<A>, HCons<B, HNil>>> for Intersect where
    HCons<Filter, HCons<HCons<Partial, HCons<Contains, HCons<Quote<A>, HNil>>>, HCons<Quote<B>, HNil>>>: Eval
[src]

impl<A, B> FunCall<HCons<PhantomData<A>, HCons<B, HNil>>> for Remove where
    HCons<Head, HCons<HCons<Tail, HCons<HCons<Collate, HCons<HCons<Partial, HCons<Contains, HCons<Quote<A>, HNil>>>, HCons<Quote<B>, HNil>>>, HNil>>, HNil>>: Eval
[src]

impl<A, B> FunCall<HCons<A, HCons<B, HNil>>> for SubsetP where
    HCons<SupersetP, HCons<Quote<B>, HCons<Quote<A>, HNil>>>: Eval
[src]

impl<A, B> FunCall<HCons<A, HCons<B, HNil>>> for SupersetP where
    HCons<All, HCons<HCons<Partial, HCons<Contains, HCons<Quote<A>, HNil>>>, HCons<Quote<B>, HNil>>>: Eval
[src]

impl<A: List, B: List> FunCall<HCons<A, HCons<B, HNil>>> for Concat where
    HCons<HCons<If, HCons<HCons<EmptyP, HCons<Quote<A>, HNil>>, HCons<Ret, HCons<Quote<ConcatCont<A>>, HNil>>>>, HCons<Quote<B>, HNil>>: Eval
[src]

impl<A: List, B: List> FunCall<HCons<A, HCons<B, HNil>>> for Union where
    HCons<If, HCons<HCons<EmptyP, HCons<Quote<A>, HNil>>, HCons<HCons<UnwrapRc, HCons<Quote<Rc<B>>, HNil>>, HCons<HCons<Union, HCons<Quote<A::Tail>, HCons<HCons<If, HCons<HCons<Is, HCons<Missing, HCons<HCons<Find, HCons<Quote<A::Head>, HCons<Quote<B>, HNil>>>, HNil>>>, HCons<HCons<Cons, HCons<Quote<A::Head>, HCons<HCons<UnwrapRc, HCons<Quote<Rc<B>>, HNil>>, HNil>>>, HCons<HCons<UnwrapRc, HCons<Quote<Rc<B>>, HNil>>, HNil>>>>, HNil>>>, HNil>>>>: Eval
[src]

impl<Arg> FunCall<HCons<Arg, HNil>> for Quote where
    HCons<Ret, HCons<Quote<Quote<Arg>>, HNil>>: Eval
[src]

type Result = <HCons<Ret, HCons<Quote<Quote<Arg>>, HNil>> as Eval>::Result

impl<Args> FunCall<Args> for No where
    HCons<Ret, HCons<Quote<False>, HNil>>: Eval
[src]

impl<Args> FunCall<Args> for Yes where
    HCons<Ret, HCons<Quote<True>, HNil>>: Eval
[src]

impl<Args: List> FunCall<Args> for BuildList where
    HCons<Ret, HCons<Quote<Args>, HNil>>: Eval
[src]

type Result = <HCons<Ret, HCons<Quote<Args>, HNil>> as Eval>::Result

impl<Func, Acc, L: List> FunCall<HCons<Func, HCons<Acc, HCons<L, HNil>>>> for FoldL where
    HCons<If, HCons<HCons<EmptyP, HCons<Quote<L>, HNil>>, HCons<HCons<UnwrapRc, HCons<Quote<Rc<Acc>>, HNil>>, HCons<HCons<FoldL, HCons<Func, HCons<HCons<Func, HCons<HCons<UnwrapRc, HCons<Quote<Rc<Acc>>, HNil>>, HCons<Quote<L::Head>, HNil>>>, HCons<Quote<L::Tail>, HNil>>>>, HNil>>>>: Eval
[src]

impl<Func, L: List> FunCall<HCons<Func, HCons<L, HNil>>> for Filter where
    HCons<If, HCons<HCons<EmptyP, HCons<Quote<L>, HNil>>, HCons<HNil, HCons<HCons<HCons<If, HCons<HCons<Func, HCons<Quote<L::Head>, HNil>>, HCons<Quote<Prepend<L::Head>>, HCons<Ret, HNil>>>>, HCons<HCons<Filter, HCons<Func, HCons<Quote<L::Tail>, HNil>>>, HNil>>, HNil>>>>: Eval
[src]

impl<Func, L: List> FunCall<HCons<Func, HCons<L, HNil>>> for Map where
    HCons<If, HCons<HCons<EmptyP, HCons<Quote<L>, HNil>>, HCons<HNil, HCons<HCons<Cons, HCons<HCons<Func, HCons<Quote<L::Head>, HNil>>, HCons<HCons<Map, HCons<Func, HCons<Quote<L::Tail>, HNil>>>, HNil>>>, HNil>>>>: Eval
[src]

impl<Func, L: List, Init> FunCall<HCons<Func, HCons<L, HCons<Init, HNil>>>> for FoldR where
    HCons<If, HCons<HCons<EmptyP, HCons<Quote<L>, HNil>>, HCons<HCons<UnwrapRc, HCons<Quote<Rc<Init>>, HNil>>, HCons<HCons<Func, HCons<Quote<L::Head>, HCons<HCons<FoldR, HCons<Func, HCons<Quote<L::Tail>, HCons<HCons<UnwrapRc, HCons<Quote<Rc<Init>>, HNil>>, HNil>>>>, HNil>>>, HNil>>>>: Eval
[src]

impl<H1, T1: List, H2, T2: List> FunCall<HCons<HCons<H1, T1>, HCons<HCons<H2, T2>, HNil>>> for DifferP where
    HCons<If, HCons<HCons<Is, HCons<Quote<H1>, HCons<Quote<H2>, HNil>>>, HCons<HCons<DifferP, HCons<Quote<T1>, HCons<Quote<T2>, HNil>>>, HCons<Quote<True>, HNil>>>>: Eval
[src]

impl<H, T> FunCall<HCons<H, HCons<T, HNil>>> for Cons where
    HCons<Ret, HCons<Quote<HCons<H, T>>, HNil>>: Eval
[src]

type Result = <HCons<Ret, HCons<Quote<HCons<H, T>>, HNil>> as Eval>::Result

impl<H, T, Accum> FunCall<HCons<Accum, HNil>> for ConcatCont<HCons<H, T>> where
    HCons<Cons, HCons<Quote<H>, HCons<HCons<Concat, HCons<Quote<T>, HCons<Quote<Accum>, HNil>>>, HNil>>>: Eval
[src]

type Result = <HCons<Cons, HCons<Quote<H>, HCons<HCons<Concat, HCons<Quote<T>, HCons<Quote<Accum>, HNil>>>, HNil>>> as Eval>::Result

impl<H, T: List> FunCall<HCons<HCons<H, T>, HCons<HNil, HNil>>> for DifferP where
    HCons<Ret, HCons<Quote<True>, HNil>>: Eval
[src]

impl<H, T: List> FunCall<HCons<HNil, HCons<HCons<H, T>, HNil>>> for DifferP where
    HCons<Ret, HCons<Quote<True>, HNil>>: Eval
[src]

impl<Haystack, Item> FunCall<HCons<Haystack, HCons<Item, HNil>>> for Contains where
    HCons<Any, HCons<HCons<Partial, HCons<Is, HCons<Quote<Item>, HNil>>>, HCons<Quote<Haystack>, HNil>>>: Eval
[src]

type Result = <HCons<Any, HCons<HCons<Partial, HCons<Is, HCons<Quote<Item>, HNil>>>, HCons<Quote<Haystack>, HNil>>> as Eval>::Result

impl<In: List, Out> FunCall<HCons<Out, HNil>> for RevCont<In> where
    HCons<Rev5, HCons<Quote<In::Tail>, HCons<HCons<Cons, HCons<Quote<In::Head>, HCons<Quote<Out>, HNil>>>, HNil>>>: Eval
[src]

type Result = <HCons<Rev5, HCons<Quote<In::Tail>, HCons<HCons<Cons, HCons<Quote<In::Head>, HCons<Quote<Out>, HNil>>>, HNil>>> as Eval>::Result

impl<L, R> FunCall<HCons<L, HCons<R, HNil>>> for Is where
    L: LispId,
    R: LispId,
    L::Id: IsEqual<R::Id>,
    <L::Id as IsEqual<R::Id>>::Output: Default
[src]

type Result = <L::Id as IsEqual<R::Id>>::Output

impl<L, R> FunCall<HCons<L, HCons<R, HNil>>> for IsNot where
    HCons<Not, HCons<HCons<Is, HCons<Quote<L>, HCons<Quote<R>, HNil>>>, HNil>>: Eval
[src]

impl<L: List> FunCall<HCons<L, HNil>> for EmptyP where
    HCons<Ret, HCons<Quote<L::IsEOL>, HNil>>: Eval
[src]

type Result = <HCons<Ret, HCons<Quote<L::IsEOL>, HNil>> as Eval>::Result

impl<L: List> FunCall<HCons<L, HNil>> for Head where
    HCons<Ret, HCons<Quote<L::Head>, HNil>>: Eval
[src]

type Result = <HCons<Ret, HCons<Quote<L::Head>, HNil>> as Eval>::Result

impl<L: List> FunCall<HCons<L, HNil>> for Rev4 where
    HCons<Rev4, HCons<Quote<L>, HCons<HNil, HNil>>>: Eval
[src]

impl<L: List> FunCall<HCons<L, HNil>> for Rev5 where
    HCons<Rev5, HCons<Quote<L>, HCons<HNil, HNil>>>: Eval
[src]

impl<L: List> FunCall<HCons<L, HNil>> for Tail where
    HCons<Ret, HCons<Quote<L::Tail>, HNil>>: Eval
[src]

type Result = <HCons<Ret, HCons<Quote<L::Tail>, HNil>> as Eval>::Result

impl<L: List, Needle: LispId> FunCall<HCons<Needle, HCons<L, HNil>>> for Without where
    HCons<Filter, HCons<HCons<Partial, HCons<IsNot, HCons<Quote<Needle>, HNil>>>, HCons<Quote<L>, HNil>>>: Eval
[src]

impl<L: Add<U1>> FunCall<HCons<L, HNil>> for Inc where
    HCons<Ret, HCons<Quote<L::Output>, HNil>>: Eval
[src]

impl<L: Add<R>, R> FunCall<HCons<L, HCons<R, HNil>>> for Add where
    HCons<Ret, HCons<Quote<L::Output>, HNil>>: Eval
[src]

impl<L: Sub<U1>> FunCall<HCons<L, HNil>> for Dec where
    HCons<Ret, HCons<Quote<L::Output>, HNil>>: Eval
[src]

impl<L: Sub<R>, R> FunCall<HCons<L, HCons<R, HNil>>> for Sub where
    HCons<Ret, HCons<Quote<L::Output>, HNil>>: Eval
[src]

impl<Needle> FunCall<HCons<Needle, HCons<HNil, HNil>>> for Find where
    HCons<Ret, HCons<Missing, HNil>>: Eval
[src]

impl<Needle, H, T> FunCall<HCons<Needle, HCons<HCons<H, T>, HNil>>> for Find where
    HCons<If, HCons<HCons<Is, HCons<Needle, HCons<Quote<H>, HNil>>>, HCons<Here, HCons<HCons<WrapMissing, HCons<HCons<Find, HCons<Needle, HCons<Quote<T>, HNil>>>, HNil>>, HNil>>>>: Eval
[src]

type Result = <HCons<If, HCons<HCons<Is, HCons<Needle, HCons<Quote<H>, HNil>>>, HCons<Here, HCons<HCons<WrapMissing, HCons<HCons<Find, HCons<Needle, HCons<Quote<T>, HNil>>>, HNil>>, HNil>>>> as Eval>::Result

impl<Old: List, New: List> FunCall<HCons<Old, HCons<New, HNil>>> for Rev4 where
    HCons<If, HCons<HCons<EmptyP, HCons<Quote<Old>, HNil>>, HCons<HCons<UnwrapRc, HCons<Quote<Rc<New>>, HNil>>, HCons<HCons<Rev4, HCons<Quote<Old::Tail>, HCons<HCons<Cons, HCons<Quote<Old::Head>, HCons<HCons<UnwrapRc, HCons<Quote<Rc<New>>, HNil>>, HNil>>>, HNil>>>, HNil>>>>: Eval
[src]

impl<Old: List, New: List> FunCall<HCons<Old, HCons<New, HNil>>> for Rev5 where
    HCons<HCons<If, HCons<HCons<EmptyP, HCons<Quote<Old>, HNil>>, HCons<Ret, HCons<Quote<RevCont<Old>>, HNil>>>>, HCons<Quote<New>, HNil>>: Eval
[src]

impl<P, Args> FunCall<Args> for Inverted<P> where
    HCons<Not, HCons<HCons<Quote<P>, Args>, HNil>>: Eval
[src]

type Result = <HCons<Not, HCons<HCons<Quote<P>, Args>, HNil>> as Eval>::Result

impl<Pred> FunCall<HCons<Pred, HCons<HNil, HNil>>> for FindPred where
    HCons<Ret, HCons<Missing, HNil>>: Eval
[src]

impl<Pred> FunCall<HCons<Pred, HNil>> for Invert where
    HCons<Ret, HCons<Quote<Inverted<Pred>>, HNil>>: Eval
[src]

type Result = <HCons<Ret, HCons<Quote<Inverted<Pred>>, HNil>> as Eval>::Result

impl<Pred, H, T> FunCall<HCons<Pred, HCons<HCons<H, T>, HNil>>> for FindPred where
    HCons<If, HCons<HCons<Quote<Pred>, HCons<Quote<H>, HNil>>, HCons<U0, HCons<HCons<WrapMissing, HCons<HCons<FindPred, HCons<Quote<Pred>, HCons<Quote<T>, HNil>>>, HNil>>, HNil>>>>: Eval
[src]

type Result = <HCons<If, HCons<HCons<Quote<Pred>, HCons<Quote<H>, HNil>>, HCons<U0, HCons<HCons<WrapMissing, HCons<HCons<FindPred, HCons<Quote<Pred>, HCons<Quote<T>, HNil>>>, HNil>>, HNil>>>> as Eval>::Result

impl<Pred, Haystack> FunCall<HCons<Pred, HCons<Haystack, HNil>>> for All where
    HCons<Not, HCons<HCons<Any, HCons<HCons<Invert, HCons<Pred, HNil>>, HCons<Quote<Haystack>, HNil>>>, HNil>>: Eval
[src]

type Result = <HCons<Not, HCons<HCons<Any, HCons<HCons<Invert, HCons<Pred, HNil>>, HCons<Quote<Haystack>, HNil>>>, HNil>> as Eval>::Result

impl<Pred, Haystack> FunCall<HCons<Pred, HCons<Haystack, HNil>>> for Any where
    HCons<Not, HCons<HCons<Is, HCons<Missing, HCons<HCons<FindPred, HCons<Quote<Pred>, HCons<Quote<Haystack>, HNil>>>, HNil>>>, HNil>>: Eval
[src]

impl<Prefix, Tail> FunCall<Tail> for PartialImpl<Prefix> where
    HCons<Concat, HCons<Quote<Prefix>, HCons<HCons<Map, HCons<Quote, HCons<Quote<Tail>, HNil>>>, HNil>>>: Eval,
    <HCons<Concat, HCons<Quote<Prefix>, HCons<HCons<Map, HCons<Quote, HCons<Quote<Tail>, HNil>>>, HNil>>> as Eval>::Result: Eval
[src]

type Result = <<HCons<Concat, HCons<Quote<Prefix>, HCons<HCons<Map, HCons<Quote, HCons<Quote<Tail>, HNil>>>, HNil>>> as Eval>::Result as Eval>::Result

impl<T> FunCall<HCons<Option<T>, HNil>> for Unwrap where
    HCons<Ret, HCons<Quote<T>, HNil>>: Eval
[src]

type Result = <HCons<Ret, HCons<Quote<T>, HNil>> as Eval>::Result

impl<T> FunCall<HCons<Rc<T>, HNil>> for UnwrapRc where
    HCons<Ret, HCons<Quote<T>, HNil>>: Eval
[src]

type Result = <HCons<Ret, HCons<Quote<T>, HNil>> as Eval>::Result

impl<T> FunCall<HCons<T, HNil>> for WrapRc where
    HCons<Ret, HCons<Quote<Rc<T>>, HNil>>: Eval
[src]

type Result = <HCons<Ret, HCons<Quote<Rc<T>>, HNil>> as Eval>::Result

impl<T, U> FunCall<HCons<T, U>> for Ret[src]

type Result = T

impl<Test, L: CollatedBy<Test>> FunCall<HCons<Test, HCons<L, HNil>>> for Collate where
    HCons<BuildList, HCons<Quote<L::Passed>, HCons<Quote<L::Failed>, HNil>>>: Eval
[src]

impl<X, Tail> FunCall<HCons<Tail, HNil>> for Prepend<X> where
    HCons<Cons, HCons<Quote<X>, HCons<Quote<Tail>, HNil>>>: Eval
[src]

type Result = <HCons<Cons, HCons<Quote<X>, HCons<Quote<Tail>, HNil>>> as Eval>::Result

impl<X: LispId, L: List> FunCall<HCons<X, HCons<L, HNil>>> for SetInsert where
    HCons<HCons<If, HCons<HCons<Is, HCons<Missing, HCons<HCons<Find, HCons<Quote<X>, HCons<Quote<L>, HNil>>>, HNil>>>, HCons<Quote<Prepend<X>>, HCons<Ret, HNil>>>>, HCons<Quote<L>, HNil>>: Eval
[src]