-
Notifications
You must be signed in to change notification settings - Fork 5
Description
This is one of the more conservative Haskell libraries in wide usage. "Standard Haskell" has explicitly been mentioned as a design element. There is one unambiguous standard, the Haskell Report, in multiple versions. According to both versions 98 and 2010, a minimal implementation that doesn't support LANGUAGE pragmas should ignore them, and will choke on CPP syntax. We have CPP syntax everywhere. This is enough to prove that whatever notion of "standard" we've committed to is ad hoc, and we ain't getting rid of CPP directives anytime soon.
In order to reduce the amount of eggshell-treading in maintaining the library, we should commit to some guidelines about which compilers and versions of the base library to support. Per the above, we're not supporting minimal implementations. We already seem to support
- GHC >=7.0.2
- MicroHs
per explicit CPP macros. I think that's a good couple of compilers to support for now, although I wonder about the GHC version. Perhaps we ought to drop support for <8.x for some x, and its corresponding base library version. MicroHs is too new to talk about backward compatibility there yet; we should continue to support it on a rolling basis.