
Aaron Denney wrote:
None of the existing OSes get subtypes... what if "Other" is also standalone, not having a String argument (and whenever someone wants to detect some other OS, I guess they petition to have the enumeration expanded and it will be promptly) - how is that on the problem scale??
It looks like a problem to me. If nothing else, as it expands, old packages get nasty warnings about incomplete pattern matches on old systems, and still don't work on new systems, as the package doesn't know how to handle this case.
One should never have a case for "Other" anyway. Either case ... of Windows -> ... Linux -> ... _ -> ... --default behavior or case ... of Windows -> ... Linux -> ... --intentionally broken on unimplemented platforms --or _ -> error "not implemented on unknown platforms" should be used, anyway. That's good practice for anything like this, not just in Haskell, that is not inherently a fixed set: "isOther" is nonsensical to check for. (I am recalling that anti-"other" conclusion for file/directory/... information flags in C++ Boost.) Isaac