I don't get why you want to pick a weird value instead of -1 for FE_*'s that aren't supported. As to the types, you definitely want to use the smallest SML type large enough so that you can do as much as possible in straight SML, wouldn't you?