~singpolyma/trait_enum_macro