I would definitely prefer to have the Data/Typeable instances in the 'time' package itself wrapped with the same sort of prophylactic baggage that surrounds it in the containers, bytestring, and other haskell platform packages. It would be far less likely to cause confusion in the future than with the profusion of solutions we see today:
* some packages providing it
* others requiring a third-party package
* and yet others not exposing enough details for third-party support to be written at all
Regardless, some canonical location for those instances needs to exist to prevent people from rolling their own contradictory instances.
So I'm a strong +1 to just including the instances in an appropriate wrapper to be extended as more compilers add support, and a reluctant but still sturdy +1 if you really feel that those instances really can't be in good conscience be rolled into time.
-Edward Kmett
Malcolm Wallace wrote:Merging the Data instances into "time" is certainly my preference. But if there were consensus for it and code for it, I would consider a solution that made "time" not require Rank2.
At the time of that objection, I did not realise that "time" already required Rank2. My preference would be for "time"s dependency on ReadP to be removed in favour of a H'98 parsing combinator library, thus bringing "time" back to true portability.
(Back in the autumn, I did spend some time attempting to re-code "time"s parsing code precisely to remove the ReadP dep, but never completed it.)
However, you might consider that a step too far, in which case adding the Rank2-requiring Data instances into "time" might be the better solution for you.
--
Ashley Yakeley
_______________________________________________
Libraries mailing list
Libraries@haskell.org
http://www.haskell.org/mailman/listinfo/libraries