(make-type size parent id)
Constructs and returns a new type object. Size is an exact integer representing the number of slots in the records produced from the type object, exclusive of any slots provided by the parent type parent. Parent may also be #f, in which case there is no parent type. `Id` is an object to label the type with.
(make-constructor type)
Returns a procedure that constructs records of type type. The values of the slots are undefined.
(make-type-predicate type)
Returns a procedure of one argument that answers #t if its argument is of type type and #f otherwise. An argument is of type type if it was built by a constructor produced from any subtype of type.
(make-getter type slotnum)
Returns a procedure of one argument that returns the slot numbered slotnum in its argument, an object of type type. Slots are numbered starting at 0 in the top-level type.
(make-setter type slotnum)
Returns a procedure of two arguments that sets the slot numbered slotnum in its first argument, an object of type type, to the value of its second argument. Slots are numbered starting at 0 in the top-level type.
(type-size type)
(type-parent type)
(type-id type)
These return the properties of type.