Only calculate enum values once
Internally, in the recommended build process, we shouldn't have the generator calls in each of the cpp library and the Haskell library running the compiler to inspect enums. This only needs to happen once. The cpp library should record its results and pass that on to the Haskell library.