Add type_definition<T>() function