Also, `enumerate` is a common function for `[minBound .. maxBound]`, found in many libraries, e.g. `extra`: https://hackage.haskell.org/package/extra-1.7.12/docs/Data-List-Extra.html#v:enumerate