The cast here is curious and has the potential to throw a `ClassCastException`, no? I wonder if we should do something clever with passing a `TypeReference` whose `getType` just returns the argument `type`. In practice this shouldn't make a difference (you should likely always use a class type) but I wonder if we should handle it. @swankjesse, any opinions here?