Definitional implementation.
Added the ability to get the textual name of a type