The fmt library has support for custom formatters for specifying how to format Enums and Custom Types. Enums in particular have been flaky as there may not be an implicit conversion to the underlying type, which is an integer type. Newer versions of fmt has some useful definitions for formatting containers and other standard library entities like pairs and tuples. An upgrade of the current submodule may be needed but care needed to ensure that formatting of types like Enums is safe and reliable.