Первое, что приходит на ум, - это обернуть членов System.Enum
строго типизированными обертками:
// 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,_>