Trait Backend

Source
pub trait Backend<V: Binder + Clone + Eq, M: Eq + Clone>
where V::Var: Eq + Ord + Clone,
{ type Output; // Required methods fn undef(&mut self) -> Self::Output; fn var(&mut self, v: V::Var) -> Self::Output; fn selfreference(&mut self, v: Self::Output) -> Self::Output; fn abs(&mut self, b: V, o: Self::Output) -> Self::Output; fn app(&mut self, a: Self::Output, b: Self::Output) -> Self::Output; fn mix(&mut self, x: M) -> Self::Output; // Provided method fn compile(&mut self, a: GTerm<V, M>) -> Self::Output { ... } }

Required Associated Types§

Required Methods§

Source

fn undef(&mut self) -> Self::Output

Source

fn var(&mut self, v: V::Var) -> Self::Output

Source

fn selfreference(&mut self, v: Self::Output) -> Self::Output

Source

fn abs(&mut self, b: V, o: Self::Output) -> Self::Output

Source

fn app(&mut self, a: Self::Output, b: Self::Output) -> Self::Output

Source

fn mix(&mut self, x: M) -> Self::Output

Provided Methods§

Source

fn compile(&mut self, a: GTerm<V, M>) -> Self::Output

Implementors§

Source§

impl<V: Binder + Clone + Eq, M: Clone + Eq> Backend<V, M> for Lam
where V::Var: Eq + Ord + Clone,

Source§

type Output = GTerm<V, M>