Recording typeclass ancestors #
The "old" structure command currently does not record the parent typeclasses. This file defines the
ancestor attribute to remedy this. This information is notably used by to_additive to map
structure fields and constructors of a multiplicative structure to its additive counterpart.
The ancestor attributes is used to record the names of structures which appear in the
extends clause of a structure or class declared with old_structure_cmd set to true.
As an example:
set_option old_structure_cmd true
structure base_one := (one : ℕ)
structure base_two (α : Type*) := (two : ℕ)
@[ancestor base_one base_two]
structure bar extends base_one, base_two α
The list of ancestors should be in the order they appear in the extends clause, and should
contain only the names of the ancestor structures, without any arguments.