EnumShape<'enum> Type
Structural shape for a flags-style enum: a struct Enum whose underlying type
supports the bitwise |||, ^^^ and &&& operators. In practice this is every
.NET enum type, since the F# compiler resolves those three operators for any enum intrinsically —
this abbreviation exists purely so Enum's functions don't each repeat the same three-line
constraint clause.
TDesu.FSharp