pub enum Node {
Show 17 variants
BVar(u32),
FVar(u32),
Sort(LevelId),
Const(NameId, LevelsId),
App(ExprId, ExprId),
Lam(ExprId, ExprId),
Pi(ExprId, ExprId),
Let(ExprId, ExprId, ExprId),
NatLit(NatId),
StrLit(StrId),
Proj(NameId, u32, ExprId),
Match(ExprId, ExprId, ExprId),
Fix(ExprId),
MutualFix(ExprId, u32),
Seq(ExprId, ExprId),
Nil,
Lit(LitId),
}Variants§
BVar(u32)
FVar(u32)
Sort(LevelId)
Const(NameId, LevelsId)
App(ExprId, ExprId)
Lam(ExprId, ExprId)
Pi(ExprId, ExprId)
Let(ExprId, ExprId, ExprId)
NatLit(NatId)
StrLit(StrId)
Proj(NameId, u32, ExprId)
Match(ExprId, ExprId, ExprId)
LOGOS: match disc return motive with cases, the cases a Node::Seq chain in
constructor order.
Fix(ExprId)
LOGOS: fix f => body, with f bound as BVar 0 in body.
MutualFix(ExprId, u32)
LOGOS: the index-th member of a mutual fixpoint block whose members (a Node::Seq
chain) are each bound in every body, the first member outermost.
Seq(ExprId, ExprId)
A non-empty list of expressions: its first element and the rest (Node::Nil at the end).
Only Node::Match and Node::MutualFix hold one.
Nil
Lit(LitId)
A LOGOS literal with no Lean counterpart.
Trait Implementations§
impl Copy for Node
impl Eq for Node
impl StructuralPartialEq for Node
Auto Trait Implementations§
impl Freeze for Node
impl RefUnwindSafe for Node
impl Send for Node
impl Sync for Node
impl Unpin for Node
impl UnsafeUnpin for Node
impl UnwindSafe for Node
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