pub struct TypeSystem {
pub name: String,
pub type_constructors: Vec<TypeConstructor>,
pub term_constructors: Vec<TermConstructor>,
pub typing_rules: Vec<TypingRule>,
pub reduction_rules: Vec<ReductionRule>,
pub equivalence_rules: Vec<EquivalenceRule>,
pub structural: StructuralRules,
}Expand description
A complete derived type system.
This is the main output of the derivation process.
Fields§
§name: StringName of the type system
type_constructors: Vec<TypeConstructor>Type constructors (how to form types)
term_constructors: Vec<TermConstructor>Term constructors (how to form terms)
typing_rules: Vec<TypingRule>Typing rules
reduction_rules: Vec<ReductionRule>Reduction rules (β-reduction)
equivalence_rules: Vec<EquivalenceRule>Equivalence rules (η-expansion)
structural: StructuralRulesStructural rules available
Trait Implementations§
Source§impl Clone for TypeSystem
impl Clone for TypeSystem
Source§fn clone(&self) -> TypeSystem
fn clone(&self) -> TypeSystem
Returns a duplicate of the value. Read more
1.0.0 · Source§fn clone_from(&mut self, source: &Self)
fn clone_from(&mut self, source: &Self)
Performs copy-assignment from
source. Read moreSource§impl Debug for TypeSystem
impl Debug for TypeSystem
Source§impl Default for TypeSystem
impl Default for TypeSystem
Source§fn default() -> TypeSystem
fn default() -> TypeSystem
Returns the “default value” for a type. Read more
Auto Trait Implementations§
impl Freeze for TypeSystem
impl RefUnwindSafe for TypeSystem
impl Send for TypeSystem
impl Sync for TypeSystem
impl Unpin for TypeSystem
impl UnwindSafe for TypeSystem
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