* The yard syntax when a param can be one of a list of types is `[String, Class]`.
* Technically, can't it be a `Module`?  Given that a `Class` is a `Module`, maybe it would be more accurate and sufficient to say `[String, Module]`.
* In the overloads above you called this param `name`.  It would be good to be consistent.  I like `doubled_class` as the param name.