I suspect this pattern might be usefully brought into `Enum` as another constructor function (or possibly deeper, although this may require/allow a rewrite) so that the implicit mutable state in an Enum can be made explicit for easier management. (less bugs)