pub enum Syn {
Lit(i64),
Var(i64),
Name(String),
App(Box<Syn>, Box<Syn>),
}Expand description
The object language’s four shapes, as this module reads them.
The reflection grammar the tactic primitives are handed is SLit n, SVar i, SName s and
SApp f x — four global constructors applied to literals and to each other. That is the
whole of it. Reading it here rather than through the kernel’s reify extractors is the
point: a shared reader is a shared assumption, and an assumption both kernels make is one
neither checks.
Variants§
Lit(i64)
SLit n — an integer literal of the object language.
Var(i64)
SVar i — a de Bruijn occurrence.
Name(String)
SName s — a named global: a free variable to arithmetic, a function symbol to
congruence.
App(Box<Syn>, Box<Syn>)
SApp f x — object-language application, curried.
Trait Implementations§
impl Eq for Syn
impl StructuralPartialEq for Syn
Auto Trait Implementations§
impl Freeze for Syn
impl RefUnwindSafe for Syn
impl Send for Syn
impl Sync for Syn
impl Unpin for Syn
impl UnsafeUnpin for Syn
impl UnwindSafe for Syn
Blanket Implementations§
Source§impl<T> BorrowMut<T> for Twhere
T: ?Sized,
impl<T> BorrowMut<T> for Twhere
T: ?Sized,
Source§fn borrow_mut(&mut self) -> &mut T
fn borrow_mut(&mut self) -> &mut T
Mutably borrows from an owned value. Read more