Extends the object 'a'. 'a' becomes a record such that 'a.base' is the original 'a'. Most functions consider 'a' as 'a.base'. Most complex objects can be extended. Integers (<elt-ord^rat>) and booleans (<elt-alg^boo>) cannot be extended with this function. Extended objects of all types can be constructed directly.