型を変数として扱うことってできない?
型を格納する型 Typetype だとしたら
Typetype ttype1 = 引数の型をハッシュ化する関数(var);
if (ttype1 == ttype2) {}
みたいに