Records and Extended Objects
In KASH3 records serve multiple purposes. First of all they allow the construction of complex structures. These data structures can easily be assigned new types by simply adding a 'type' component. They can also be used to extend existing data structures: if a record contains a 'base' component, then it is treated like its 'base' component by most functions. Furthermore records can be used to overload the operations '+', '-', '*', '/', '>', '=', 'mod' by including in an 'operations' component.