Lazy EnumMapMap. Based upon Data.IntMap.Lazy, this version uses multi
dimensional keys and Enum types instead of Ints. Keys are built using
the :& operator and terminated with K. They are stored using Ints so 2
keys that Enum to the same Int value will overwrite each other. The
intension is that the Enum types will actually be newtype Ints.