Struct HCons

Source
pub struct HCons<H, T> {
    pub head: H,
    pub tail: T,
}

Fields§

§head: H§tail: T

Trait Implementations§

Source§

impl<H: Calc<QH>, T, QH, QT> Calc<HCons<QH, QT>> for HCons<H, T>
where H::Result: Call, <H::Result as Call>::Conv: CalcImpl<H::Result, T, QT>,

Source§

type Result = <<<H as Calc<QH>>::Result as Call>::Conv as CalcImpl<<H as Calc<QH>>::Result, T, QT>>::Result

Source§

fn calc(q: HCons<QH, QT>) -> Self::Result

Source§

impl<QH, QT, H, T> CalcList<HCons<QH, QT>> for HCons<H, T>
where H: Calc<QH>, T: CalcList<QT>,

Source§

type Result = HCons<<H as Calc<QH>>::Result, <T as CalcList<QT>>::Result>

Source§

fn calc_list(q: HCons<QH, QT>) -> HCons<H::Result, T::Result>

Source§

impl<H: Clone, T: Clone> Clone for HCons<H, T>

Source§

fn clone(&self) -> HCons<H, T>

Returns a duplicate of the value. Read more
1.0.0 · Source§

fn clone_from(&mut self, source: &Self)

Performs copy-assignment from source. Read more
Source§

impl<H, T, Test, Step> CollatedBy<Test> for HCons<H, T>
where HCons<Test, HCons<Quote<H>, HNil>>: Eval<Result = Step>, Step: CollateStep<Test, H, T>,

Source§

type Passed = <Step as CollateStep<Test, H, T>>::Passed

Source§

type Failed = <Step as CollateStep<Test, H, T>>::Failed

Source§

fn collate(self) -> (Self::Passed, Self::Failed)

Source§

impl<H: Debug, T: Debug> Debug for HCons<H, T>

Source§

fn fmt(&self, f: &mut Formatter<'_>) -> Result

Formats the value using the given formatter. Read more
Source§

impl<H: Default, T: Default> Default for HCons<H, T>

Source§

fn default() -> HCons<H, T>

Returns the “default value” for a type. Read more
Source§

impl<H: Eval, T> Eval for HCons<H, T>
where H::Result: Call, <H::Result as Call>::Conv: CallImpl<H::Result, T>,

Source§

type Result = <<<H as Eval>::Result as Call>::Conv as CallImpl<<H as Eval>::Result, T>>::Result

Source§

impl<H: Eval, T: EvalList> EvalList for HCons<H, T>

Source§

type Result = HCons<<H as Eval>::Result, <T as EvalList>::Result>

Source§

impl<A: List, B: List> FunCalc<HCons<A, HCons<B, HNil>>> for Concat

Source§

impl<A: List, B: List> FunCalc<HCons<A, HCons<B, HNil>>> for Union

Source§

impl<H, T, Accum> FunCalc<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>>>: Calc<HCons<(), HCons<H, HCons<HCons<(), HCons<T, HCons<Accum, HNil>>>, HNil>>>>,

Source§

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

Source§

fn calc(self, args: HCons<Accum, HNil>) -> Self::Result

Source§

impl FunCalc<HCons<B0, HNil>> for Not

Source§

type Result = <HCons<Ret, HCons<Quote<B1>, HNil>> as Calc<HCons<(), HCons<B1, HNil>>>>::Result

Source§

fn calc(self, args: HCons<False, HNil>) -> Self::Result

Source§

impl FunCalc<HCons<B1, HNil>> for Not

Source§

type Result = <HCons<Ret, HCons<Quote<B0>, HNil>> as Calc<HCons<(), HCons<B0, HNil>>>>::Result

Source§

fn calc(self, args: HCons<True, HNil>) -> Self::Result

Source§

impl<'a, Func, L: List> FunCalc<HCons<Func, HCons<&'a L, HNil>>> for MapRef

Source§

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

Source§

fn calc(self, args: HCons<Func, HCons<&'a L, HNil>>) -> Self::Result

Source§

impl<Func, Acc, L: List> FunCalc<HCons<Func, HCons<Acc, HCons<L, HNil>>>> for FoldL

Source§

type Result = <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 as List>::Head>, HNil>>>, HCons<Quote<<L as List>::Tail>, HNil>>>>, HNil>>>> as Calc<HCons<(), HCons<HCons<(), HCons<(), HNil>>, HCons<HCons<(), HCons<Rc<Acc>, HNil>>, HCons<HCons<(), HCons<(), HCons<HCons<(), HCons<HCons<(), HCons<Rc<Acc>, HNil>>, HCons<<L as List>::Head, HNil>>>, HCons<<L as List>::Tail, HNil>>>>, HNil>>>>>>::Result

Source§

fn calc(self, args: HCons<Func, HCons<Acc, HCons<L, HNil>>>) -> Self::Result

Source§

impl<Func, L: List, Init> FunCalc<HCons<Func, HCons<L, HCons<Init, HNil>>>> for FoldR

Source§

type Result = <HCons<If, HCons<HCons<EmptyP, HCons<Quote<L>, HNil>>, HCons<HCons<UnwrapRc, HCons<Quote<Rc<Init>>, HNil>>, HCons<HCons<Func, HCons<Quote<<L as List>::Head>, HCons<HCons<FoldR, HCons<Func, HCons<Quote<<L as List>::Tail>, HCons<HCons<UnwrapRc, HCons<Quote<Rc<Init>>, HNil>>, HNil>>>>, HNil>>>, HNil>>>> as Calc<HCons<(), HCons<HCons<(), HCons<(), HNil>>, HCons<HCons<(), HCons<Rc<Init>, HNil>>, HCons<HCons<(), HCons<<L as List>::Head, HCons<HCons<(), HCons<(), HCons<<L as List>::Tail, HCons<HCons<(), HCons<Rc<Init>, HNil>>, HNil>>>>, HNil>>>, HNil>>>>>>::Result

Source§

fn calc(self, args: HCons<Func, HCons<L, HCons<Init, HNil>>>) -> Self::Result

Source§

impl<Func, L: List> FunCalc<HCons<Func, HCons<L, HNil>>> for Filter

Source§

impl<Func, L: List> FunCalc<HCons<Func, HCons<L, HNil>>> for Map

Source§

type Result = <HCons<If, HCons<HCons<EmptyP, HCons<Quote<L>, HNil>>, HCons<HNil, HCons<HCons<Cons, HCons<HCons<Func, HCons<Quote<<L as List>::Head>, HNil>>, HCons<HCons<Map, HCons<Func, HCons<Quote<<L as List>::Tail>, HNil>>>, HNil>>>, HNil>>>> as Calc<HCons<(), HCons<HCons<(), HCons<(), HNil>>, HCons<(), HCons<HCons<(), HCons<HCons<(), HCons<<L as List>::Head, HNil>>, HCons<HCons<(), HCons<(), HCons<<L as List>::Tail, HNil>>>, HNil>>>, HNil>>>>>>::Result

Source§

fn calc(self, args: HCons<Func, HCons<L, HNil>>) -> Self::Result

Source§

impl<H, T> FunCalc<HCons<H, HCons<T, HNil>>> for Cons
where HCons<Ret, HCons<Quote<HCons<H, T>>, HNil>>: Calc<HCons<(), HCons<HCons<H, T>, HNil>>>,

Source§

type Result = <HCons<Ret, HCons<Quote<HCons<H, T>>, HNil>> as Calc<HCons<(), HCons<HCons<H, T>, HNil>>>>::Result

Source§

fn calc(self, args: HCons<H, HCons<T, HNil>>) -> Self::Result

Source§

impl<L: Add<R>, R> FunCalc<HCons<L, HCons<R, HNil>>> for Add

Source§

type Result = <HCons<Ret, HCons<Quote<<L as Add<R>>::Output>, HNil>> as Calc<HCons<(), HCons<<L as Add<R>>::Output, HNil>>>>::Result

Source§

fn calc(self, args: HCons<L, HCons<R, HNil>>) -> Self::Result

Source§

impl<L: Sub<R>, R> FunCalc<HCons<L, HCons<R, HNil>>> for Sub

Source§

type Result = <HCons<Ret, HCons<Quote<<L as Sub<R>>::Output>, HNil>> as Calc<HCons<(), HCons<<L as Sub<R>>::Output, HNil>>>>::Result

Source§

fn calc(self, args: HCons<L, HCons<R, HNil>>) -> Self::Result

Source§

impl<L: List> FunCalc<HCons<L, HNil>> for EmptyP

Source§

type Result = <HCons<Ret, HCons<Quote<<L as List>::IsEOL>, HNil>> as Calc<HCons<(), HCons<(), HNil>>>>::Result

Source§

fn calc(self, args: HCons<L, HNil>) -> Self::Result

Source§

impl<L: List> FunCalc<HCons<L, HNil>> for Head
where HCons<Ret, HCons<Quote<L::Head>, HNil>>: Calc<HCons<(), HCons<L::Head, HNil>>>,

Source§

type Result = <HCons<Ret, HCons<Quote<<L as List>::Head>, HNil>> as Calc<HCons<(), HCons<<L as List>::Head, HNil>>>>::Result

Source§

fn calc(self, args: HCons<L, HNil>) -> Self::Result

Source§

impl<L: List> FunCalc<HCons<L, HNil>> for Rev4

Source§

type Result = <HCons<Rev4, HCons<Quote<L>, HCons<HNil, HNil>>> as Calc<HCons<(), HCons<L, HCons<HNil, HNil>>>>>::Result

Source§

fn calc(self, args: HCons<L, HNil>) -> Self::Result

Source§

impl<L: List> FunCalc<HCons<L, HNil>> for Rev5

Source§

type Result = <HCons<Rev5, HCons<Quote<L>, HCons<HNil, HNil>>> as Calc<HCons<(), HCons<L, HCons<HNil, HNil>>>>>::Result

Source§

fn calc(self, args: HCons<L, HNil>) -> Self::Result

Source§

impl<L: List> FunCalc<HCons<L, HNil>> for Tail
where HCons<Ret, HCons<Quote<L::Tail>, HNil>>: Calc<HCons<(), HCons<L::Tail, HNil>>>,

Source§

type Result = <HCons<Ret, HCons<Quote<<L as List>::Tail>, HNil>> as Calc<HCons<(), HCons<<L as List>::Tail, HNil>>>>::Result

Source§

fn calc(self, args: HCons<L, HNil>) -> Self::Result

Source§

impl<Needle, H, T> FunCalc<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>>>>: Calc<HCons<(), HCons<HCons<(), HCons<(), HCons<(), HNil>>>, HCons<(), HCons<HCons<(), HCons<HCons<(), HCons<(), HCons<(), HNil>>>, HNil>>, HNil>>>>>,

Source§

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 Calc<HCons<(), HCons<HCons<(), HCons<(), HCons<(), HNil>>>, HCons<(), HCons<HCons<(), HCons<HCons<(), HCons<(), HCons<(), HNil>>>, HNil>>, HNil>>>>>>::Result

Source§

fn calc(self, args: HCons<Needle, HCons<HCons<H, T>, HNil>>) -> Self::Result

Source§

impl<Needle> FunCalc<HCons<Needle, HCons<HNil, HNil>>> for Find

Source§

type Result = <HCons<Ret, HCons<Missing, HNil>> as Calc<HCons<(), HCons<(), HNil>>>>::Result

Source§

fn calc(self, args: HCons<Needle, HCons<HNil, HNil>>) -> Self::Result

Source§

impl<L: List, Needle: LispId> FunCalc<HCons<Needle, HCons<L, HNil>>> for Without

Source§

type Result = <HCons<Filter, HCons<HCons<Partial, HCons<IsNot, HCons<Quote<Needle>, HNil>>>, HCons<Quote<L>, HNil>>> as Calc<HCons<(), HCons<HCons<(), HCons<(), HCons<(), HNil>>>, HCons<L, HNil>>>>>::Result

Source§

fn calc(self, args: HCons<Needle, HCons<L, HNil>>) -> Self::Result

Source§

impl<Old: List, New: List> FunCalc<HCons<Old, HCons<New, HNil>>> for Rev4

Source§

type Result = <HCons<If, HCons<HCons<EmptyP, HCons<Quote<Old>, HNil>>, HCons<HCons<UnwrapRc, HCons<Quote<Rc<New>>, HNil>>, HCons<HCons<Rev4, HCons<Quote<<Old as List>::Tail>, HCons<HCons<Cons, HCons<Quote<<Old as List>::Head>, HCons<HCons<UnwrapRc, HCons<Quote<Rc<New>>, HNil>>, HNil>>>, HNil>>>, HNil>>>> as Calc<HCons<(), HCons<HCons<(), HCons<(), HNil>>, HCons<HCons<(), HCons<Rc<New>, HNil>>, HCons<HCons<(), HCons<<Old as List>::Tail, HCons<HCons<(), HCons<<Old as List>::Head, HCons<HCons<(), HCons<Rc<New>, HNil>>, HNil>>>, HNil>>>, HNil>>>>>>::Result

Source§

fn calc(self, args: HCons<Old, HCons<New, HNil>>) -> Self::Result

Source§

impl<Old: List, New: List> FunCalc<HCons<Old, HCons<New, HNil>>> for Rev5

Source§

type Result = <HCons<HCons<If, HCons<HCons<EmptyP, HCons<Quote<Old>, HNil>>, HCons<Ret, HCons<Quote<RevCont<Old>>, HNil>>>>, HCons<Quote<New>, HNil>> as Calc<HCons<HCons<(), HCons<HCons<(), HCons<(), HNil>>, HCons<(), HCons<RevCont<Old>, HNil>>>>, HCons<New, HNil>>>>::Result

Source§

fn calc(self, args: HCons<Old, HCons<New, HNil>>) -> Self::Result

Source§

impl<T> FunCalc<HCons<Option<T>, HNil>> for Unwrap
where HCons<Ret, HCons<Quote<T>, HNil>>: Calc<HCons<(), HCons<T, HNil>>>,

Source§

type Result = <HCons<Ret, HCons<Quote<T>, HNil>> as Calc<HCons<(), HCons<T, HNil>>>>::Result

Source§

fn calc(self, args: HCons<Option<T>, HNil>) -> Self::Result

Source§

impl<In: List, Out> FunCalc<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>>>: Calc<HCons<(), HCons<In::Tail, HCons<HCons<(), HCons<In::Head, HCons<Out, HNil>>>, HNil>>>>,

Source§

type Result = <HCons<Rev5, HCons<Quote<<In as List>::Tail>, HCons<HCons<Cons, HCons<Quote<<In as List>::Head>, HCons<Quote<Out>, HNil>>>, HNil>>> as Calc<HCons<(), HCons<<In as List>::Tail, HCons<HCons<(), HCons<<In as List>::Head, HCons<Out, HNil>>>, HNil>>>>>::Result

Source§

fn calc(self, args: HCons<Out, HNil>) -> Self::Result

Source§

impl<A, B> FunCalc<HCons<PhantomData<A>, HCons<B, HNil>>> for Intersect

Source§

impl<A, B> FunCalc<HCons<PhantomData<A>, HCons<B, HNil>>> for Remove

Source§

impl<T> FunCalc<HCons<Rc<T>, HNil>> for UnwrapRc
where HCons<Ret, HCons<Quote<T>, HNil>>: Calc<HCons<(), HCons<T, HNil>>>,

Source§

type Result = <HCons<Ret, HCons<Quote<T>, HNil>> as Calc<HCons<(), HCons<T, HNil>>>>::Result

Source§

fn calc(self, args: HCons<Rc<T>, HNil>) -> Self::Result

Source§

impl<T> FunCalc<HCons<T, HNil>> for WrapRc
where HCons<Ret, HCons<Quote<Rc<T>>, HNil>>: Calc<HCons<(), HCons<Rc<T>, HNil>>>,

Source§

type Result = <HCons<Ret, HCons<Quote<Rc<T>>, HNil>> as Calc<HCons<(), HCons<Rc<T>, HNil>>>>::Result

Source§

fn calc(self, args: HCons<T, HNil>) -> Self::Result

Source§

impl<T, U> FunCalc<HCons<T, U>> for Ret

Source§

type Result = T

Source§

fn calc(self, _: HCons<T, U>) -> T

Source§

impl<X, Tail> FunCalc<HCons<Tail, HNil>> for Prepend<X>
where HCons<Cons, HCons<Quote<X>, HCons<Quote<Tail>, HNil>>>: Calc<HCons<(), HCons<X, HCons<Tail, HNil>>>>,

Source§

type Result = <HCons<Cons, HCons<Quote<X>, HCons<Quote<Tail>, HNil>>> as Calc<HCons<(), HCons<X, HCons<Tail, HNil>>>>>::Result

Source§

fn calc(self, args: HCons<Tail, HNil>) -> Self::Result

Source§

impl<Test, L: CollatedBy<Test>> FunCalc<HCons<Test, HCons<L, HNil>>> for Collate

Source§

type Result = <HCons<BuildList, HCons<Quote<<L as CollatedBy<Test>>::Passed>, HCons<Quote<<L as CollatedBy<Test>>::Failed>, HNil>>> as Calc<HCons<(), HCons<<L as CollatedBy<Test>>::Passed, HCons<<L as CollatedBy<Test>>::Failed, HNil>>>>>::Result

Source§

fn calc(self, args: HCons<Test, HCons<L, HNil>>) -> Self::Result

Source§

impl<X: LispId, L: List> FunCalc<HCons<X, HCons<L, HNil>>> for SetInsert

Source§

impl<A: List, B: List> FunCall<HCons<A, HCons<B, HNil>>> for Concat

Source§

impl<A, B> FunCall<HCons<A, HCons<B, HNil>>> for SubsetP

Source§

impl<A, B> FunCall<HCons<A, HCons<B, HNil>>> for SupersetP

Source§

impl<A: List, B: List> FunCall<HCons<A, HCons<B, HNil>>> for Union

Source§

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,

Source§

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

Source§

impl FunCall<HCons<B0, HNil>> for Not

Source§

impl FunCall<HCons<B1, HNil>> for Not

Source§

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,

Source§

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

Source§

impl<Func, Acc, L: List> FunCall<HCons<Func, HCons<Acc, HCons<L, HNil>>>> for FoldL

Source§

impl<Func, L: List, Init> FunCall<HCons<Func, HCons<L, HCons<Init, HNil>>>> for FoldR

Source§

impl<Func, L: List> FunCall<HCons<Func, HCons<L, HNil>>> for Filter

Source§

impl<Func, L: List> FunCall<HCons<Func, HCons<L, HNil>>> for Map

Source§

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

Source§

impl<H, T: List> FunCall<HCons<HCons<H, T>, HCons<HNil, HNil>>> for DifferP

Source§

impl<H1, T1: List, H2, T2: List> FunCall<HCons<HCons<H1, T1>, HCons<HCons<H2, T2>, HNil>>> for DifferP

Source§

impl<H, T: List> FunCall<HCons<HNil, HCons<HCons<H, T>, HNil>>> for DifferP

Source§

impl FunCall<HCons<HNil, HCons<HNil, HNil>>> for DifferP

Source§

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,

Source§

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

Source§

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

Source§

type Result = <HCons<Ret, HCons<Quote<<L as Add<R>>::Output>, HNil>> as Eval>::Result

Source§

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,

Source§

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

Source§

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,

Source§

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

Source§

type Result = <HCons<Ret, HCons<Quote<<L as Sub<R>>::Output>, HNil>> as Eval>::Result

Source§

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

Source§

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

Source§

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

Source§

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

Source§

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

Source§

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

Source§

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

Source§

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,

Source§

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

Source§

impl<Needle> FunCall<HCons<Needle, HCons<HNil, HNil>>> for Find

Source§

impl<L: List, Needle: LispId> FunCall<HCons<Needle, HCons<L, HNil>>> for Without

Source§

impl<Old: List, New: List> FunCall<HCons<Old, HCons<New, HNil>>> for Rev4

Source§

impl<Old: List, New: List> FunCall<HCons<Old, HCons<New, HNil>>> for Rev5

Source§

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

Source§

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,

Source§

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

Source§

impl<A, B> FunCall<HCons<PhantomData<A>, HCons<B, HNil>>> for Intersect

Source§

impl<A, B> FunCall<HCons<PhantomData<A>, HCons<B, HNil>>> for Remove

Source§

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,

Source§

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

Source§

impl<Pred> FunCall<HCons<Pred, HCons<HNil, HNil>>> for FindPred

Source§

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,

Source§

impl<Pred, Haystack> FunCall<HCons<Pred, HCons<Haystack, HNil>>> for Any

Source§

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

Source§

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

Source§

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

Source§

impl<T, U> FunCall<HCons<T, U>> for Ret

Source§

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

Source§

impl<Test, L: CollatedBy<Test>> FunCall<HCons<Test, HCons<L, HNil>>> for Collate

Source§

impl<X: LispId, L: List> FunCall<HCons<X, HCons<L, HNil>>> for SetInsert

Source§

impl<H: Hash, T: Hash> Hash for HCons<H, T>

Source§

fn hash<__H: Hasher>(&self, state: &mut __H)

Feeds this value into the given Hasher. Read more
1.3.0 · Source§

fn hash_slice<H>(data: &[Self], state: &mut H)
where H: Hasher, Self: Sized,

Feeds a slice of this type into the given Hasher. Read more
Source§

impl<H, T, X> ListOf<X> for HCons<H, T>
where T: ListOf<X>, H: Into<X>,

Source§

type ListIter = Chain<Once<X>, <T as ListOf<X>>::ListIter>

Source§

fn list_of_iter(self) -> Self::ListIter

Source§

impl<H, T, X: ?Sized> ListOfRefs<X> for HCons<H, T>
where T: ListOfRefs<X>, H: AsRef<X>,

Source§

fn head_ref(&self) -> Option<&X>

Source§

fn tail_ref(&self) -> &dyn ListOfRefs<X>

Source§

fn iter(&self) -> RefIter<'_, X>
where Self: Sized,

Source§

impl<H: Ord, T: Ord> Ord for HCons<H, T>

Source§

fn cmp(&self, other: &HCons<H, T>) -> Ordering

This method returns an Ordering between self and other. Read more
1.21.0 · Source§

fn max(self, other: Self) -> Self
where Self: Sized,

Compares and returns the maximum of two values. Read more
1.21.0 · Source§

fn min(self, other: Self) -> Self
where Self: Sized,

Compares and returns the minimum of two values. Read more
1.50.0 · Source§

fn clamp(self, min: Self, max: Self) -> Self
where Self: Sized,

Restrict a value to a certain interval. Read more
Source§

impl<H: PartialEq, T: PartialEq> PartialEq for HCons<H, T>

Source§

fn eq(&self, other: &HCons<H, T>) -> bool

Tests for self and other values to be equal, and is used by ==.
1.0.0 · Source§

fn ne(&self, other: &Rhs) -> bool

Tests for !=. The default implementation is almost always sufficient, and should not be overridden without very good reason.
Source§

impl<H: PartialOrd, T: PartialOrd> PartialOrd for HCons<H, T>

Source§

fn partial_cmp(&self, other: &HCons<H, T>) -> Option<Ordering>

This method returns an ordering between self and other values if one exists. Read more
1.0.0 · Source§

fn lt(&self, other: &Rhs) -> bool

Tests less than (for self and other) and is used by the < operator. Read more
1.0.0 · Source§

fn le(&self, other: &Rhs) -> bool

Tests less than or equal to (for self and other) and is used by the <= operator. Read more
1.0.0 · Source§

fn gt(&self, other: &Rhs) -> bool

Tests greater than (for self and other) and is used by the > operator. Read more
1.0.0 · Source§

fn ge(&self, other: &Rhs) -> bool

Tests greater than or equal to (for self and other) and is used by the >= operator. Read more
Source§

impl<Arg: Eval, QArg> SynCalc<HCons<Arg, HNil>, QArg> for Phantom

Source§

type Result = PhantomData<<Arg as Eval>::Result>

Source§

fn syn_calc(self, _: QArg) -> Self::Result

Source§

impl<Cond: Eval, T, F, CQ, TQ, FQ> SynCalc<HCons<Cond, HCons<T, HCons<F, HNil>>>, HCons<CQ, HCons<TQ, HCons<FQ, HNil>>>> for If
where Cond::Result: IfCalcImpl<T, F, TQ, FQ>,

Source§

type Result = <<Cond as Eval>::Result as IfCalcImpl<T, F, TQ, FQ>>::Result

Source§

fn syn_calc(self, _: HCons<CQ, HCons<TQ, HCons<FQ, HNil>>>) -> Self::Result

Source§

impl<Test, Res, Else, QTest, QRes, QElse> SynCalc<HCons<HCons<Test, HCons<Res, HNil>>, Else>, HCons<HCons<QTest, HCons<QRes, HNil>>, QElse>> for Cond
where HCons<If, HCons<Test, HCons<Res, HCons<HCons<Cond, Else>, HNil>>>>: Calc<HCons<If, HCons<QTest, HCons<QRes, HCons<HCons<Cond, QElse>, HNil>>>>>,

Source§

type Result = <HCons<If, HCons<Test, HCons<Res, HCons<HCons<Cond, Else>, HNil>>>> as Calc<HCons<If, HCons<QTest, HCons<QRes, HCons<HCons<Cond, QElse>, HNil>>>>>>::Result

Source§

fn syn_calc( self, _: HCons<HCons<QTest, HCons<QRes, HNil>>, QElse>, ) -> Self::Result

Source§

impl<Arg: Eval> SynCall<HCons<Arg, HNil>> for Phantom

Source§

impl<Cond: Eval, T, F> SynCall<HCons<Cond, HCons<T, HCons<F, HNil>>>> for If
where Cond::Result: IfImpl<T, F>,

Source§

type Result = <<Cond as Eval>::Result as IfImpl<T, F>>::Result

Source§

impl<H, T> SynCall<HCons<H, T>> for And
where HCons<If, HCons<H, HCons<HCons<And, T>, HCons<Quote<False>, HNil>>>>: Eval,

Source§

impl<H, T> SynCall<HCons<H, T>> for Or
where HCons<If, HCons<H, HCons<Quote<True>, HCons<HCons<Or, T>, HNil>>>>: Eval,

Source§

impl<Test, Res, Else> SynCall<HCons<HCons<Test, HCons<Res, HNil>>, Else>> for Cond
where HCons<If, HCons<Test, HCons<Res, HCons<HCons<Cond, Else>, HNil>>>>: Eval,

Source§

type Result = <HCons<If, HCons<Test, HCons<Res, HCons<HCons<Cond, Else>, HNil>>>> as Eval>::Result

Source§

impl<H: Copy, T: Copy> Copy for HCons<H, T>

Source§

impl<H: Eq, T: Eq> Eq for HCons<H, T>

Source§

impl<H, T> StructuralPartialEq for HCons<H, T>

Auto Trait Implementations§

§

impl<H, T> Freeze for HCons<H, T>
where H: Freeze, T: Freeze,

§

impl<H, T> RefUnwindSafe for HCons<H, T>

§

impl<H, T> Send for HCons<H, T>
where H: Send, T: Send,

§

impl<H, T> Sync for HCons<H, T>
where H: Sync, T: Sync,

§

impl<H, T> Unpin for HCons<H, T>
where H: Unpin, T: Unpin,

§

impl<H, T> UnwindSafe for HCons<H, T>
where H: UnwindSafe, T: UnwindSafe,

Blanket Implementations§

Source§

impl<T> Any for T
where T: 'static + ?Sized,

Source§

fn type_id(&self) -> TypeId

Gets the TypeId of self. Read more
Source§

impl<T> Borrow<T> for T
where T: ?Sized,

Source§

fn borrow(&self) -> &T

Immutably borrows from an owned value. Read more
Source§

impl<T> BorrowMut<T> for T
where T: ?Sized,

Source§

fn borrow_mut(&mut self) -> &mut T

Mutably borrows from an owned value. Read more
Source§

impl<T> CloneToUninit for T
where T: Clone,

Source§

unsafe fn clone_to_uninit(&self, dest: *mut u8)

🔬This is a nightly-only experimental API. (clone_to_uninit)
Performs copy-assignment from self to dest. Read more
Source§

impl<T> From<T> for T

Source§

fn from(t: T) -> T

Returns the argument unchanged.

Source§

impl<T, U> Into<U> for T
where U: From<T>,

Source§

fn into(self) -> U

Calls U::from(self).

That is, this conversion is whatever the implementation of From<T> for U chooses to do.

Source§

impl<T> List for T
where T: List,

Source§

const LEN: usize = const LEN: usize = <Self as internal::List>::ILEN;

Source§

type Head = <T as List>::IHead

Source§

type Tail = <T as List>::ITail

Source§

type IsEOL = <T as List>::IIsEOL

Source§

fn split(self) -> (<T as List>::Head, <T as List>::Tail)

Source§

fn head(&self) -> &<T as List>::Head

Source§

fn tail(&self) -> &<T as List>::Tail

Source§

fn into_iter_as<X>(self) -> Self::ListIter
where Self: ListOf<X>,

Source§

impl<T> Same for T

Source§

type Output = T

Should always be Self
Source§

impl<T> ToOwned for T
where T: Clone,

Source§

type Owned = T

The resulting type after obtaining ownership.
Source§

fn to_owned(&self) -> T

Creates owned data from borrowed data, usually by cloning. Read more
Source§

fn clone_into(&self, target: &mut T)

Uses borrowed data to replace owned data, usually by cloning. Read more
Source§

impl<T, U> TryFrom<U> for T
where U: Into<T>,

Source§

type Error = Infallible

The type returned in the event of a conversion error.
Source§

fn try_from(value: U) -> Result<T, <T as TryFrom<U>>::Error>

Performs the conversion.
Source§

impl<T, U> TryInto<U> for T
where U: TryFrom<T>,

Source§

type Error = <U as TryFrom<T>>::Error

The type returned in the event of a conversion error.
Source§

fn try_into(self) -> Result<U, <U as TryFrom<T>>::Error>

Performs the conversion.
Source§

impl<T> Everything for T
where T: ?Sized,

Source§

impl<T> Fail for T
where T: Eval<Result = B0>,

Source§

impl<T> Pass for T
where T: Eval<Result = B1>,