Not all types are symbols. Not all symbols are types. Functionality of this template must be well-defined and judging by unittest it feels more like a strange mix.