compile Type::getAs<>() (not complete yet), use it in one place