Support parameterizable types in template