Have anybody come up with some mixin magic that given enum A { x,y,z } enum B { a,b,c } and call to a mixin BidirectionalEnums( "x", "a", "y", "b", "z", "c", ); generates two to!Enum overloads that implement bidirectional (lossless) conversion rules between A and B?