The first thing that comes to mind is wrapping the System.Enum members with strongly typed shells:
// gets all underlying values for which an enum is defined let definedVals<'a, 'b when 'a : enum<'b>> = System.Enum.GetValues(typeof<'a>) |> Seq.cast<'a> |> Seq.map (LanguagePrimitives.EnumToValue) let ints = definedVals<System.ConsoleColor,_>
kvb source share