Function that changes the type of a term.
Supports casts to a superclass (or interface) and a subclass (or interface).
If types (classes) are incompatible, the setters will throw an exception.
To change types, they must first be reset to null.
author: Jens Dietrich version: 3.4 <7 March 05> since: 3.3