filled in trait types with polymorphic variants