Interface for transforming an instance of a data type to another type.
Perform a (potentially lossy!) cast operation.