pub struct AuxMap {
pub aux_type: Name,
pub container: Name,
pub container_levels: Vec<Level>,
pub params: Vec<Expr>,
pub aux_ctors: Vec<(Name, Name)>,
pub aux_rec: Name,
pub container_rec: Name,
}Expand description
How one auxiliary inductive maps back to the real container it specializes. Retained through derivation so S3 restoration can substitute the auxiliary type / constructors / recursor back to the real container constants and drop the abstracted parameters.
Fields§
§aux_type: NameThe fresh auxiliary inductive type name (e.g. T._nested_0).
container: NameThe real container type-former it specializes (e.g. List).
container_levels: Vec<Level>The container’s universe-level arguments at the nested occurrence.
params: Vec<Expr>The concrete arguments As the container was specialized at (the
abstracted parameters restoration must re-insert / drop).
aux_ctors: Vec<(Name, Name)>(auxiliary ctor name, real container ctor name) in declaration order.
aux_rec: NameThe auxiliary recursor name the kernel will derive (<aux_type>.rec).
container_rec: NameThe real container’s recursor name (<container>.rec).
Trait Implementations§
Auto Trait Implementations§
impl !Send for AuxMap
impl !Sync for AuxMap
impl Forget for AuxMap
impl Freeze for AuxMap
impl Move for AuxMap
impl RefUnwindSafe for AuxMap
impl Unpin for AuxMap
impl UnsafeUnpin for AuxMap
impl UnwindSafe for AuxMap
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