Args are put on type arguments, and the cross product of all types that are so annotated are instantiated.