better API for Enum, Union, Tuple