pub enum LcnfType {
Erased,
Var(String),
Fun(Vec<LcnfType>, Box<LcnfType>),
Ctor(String, Vec<LcnfType>),
Object,
Nat,
LcnfString,
Unit,
Irrelevant,
}Expand description
LCNF type representation.
Types in LCNF are simplified compared to kernel types. Proof-irrelevant types and universes are erased.
Variants§
Erased
Erased type (proof-irrelevant or computationally irrelevant).
Var(String)
A type variable or named type.
Fun(Vec<LcnfType>, Box<LcnfType>)
Function type: params -> return.
Ctor(String, Vec<LcnfType>)
Constructor/inductive type with type arguments.
Object
Object type (boxed/heap-allocated).
Nat
Natural number type.
LcnfString
String type.
Unit
Unit type (erased value placeholder).
Irrelevant
Irrelevant (computationally meaningless, e.g. proofs).
Trait Implementations§
impl Eq for LcnfType
impl StructuralPartialEq for LcnfType
Auto Trait Implementations§
impl Freeze for LcnfType
impl RefUnwindSafe for LcnfType
impl Send for LcnfType
impl Sync for LcnfType
impl Unpin for LcnfType
impl UnsafeUnpin for LcnfType
impl UnwindSafe for LcnfType
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