Non-controversial rewrite RULES for time package

Ivan Lazar Miljenovic ivan.miljenovic at
Sun Sep 25 12:25:52 CEST 2011

On 25 September 2011 20:12, Liyang HU < at> wrote:
> Hi,
> The time package is too slow. :(
> A prime example is diffUTCTime, which invokes utcTimeToPOSIXSeconds,
> which in turn calls realToFrac :: DiffTime -> NominalDiffTime. The
> former of these two types notionally accounts for leap seconds, while
> the latter does not. Both are newtypes around Data.Fixed.Pico.
> Since realToFrac is used in the library only when we know the
> difference is within one day, the two notions coincide, and there is
> no need to account for leap seconds. Indeed it currently (or rather,
> its implementation of "fromRational . toRational") behaves as such.
> I propose we include some rewrite RULES to eliminate the round-trip
> via Rational. For the attached benchmark, I get a ~4x improvement in
> speed.
> Discussion period: 2 weeks.

I thought we only made proposals here for packages which have the
maintainer set to libraries at; since time is maintained by
Ashley Yakeley, wouldn't you be better off just proposing this to him
directly? (I've CC'd this to him to make sure he gets it).

Ivan Lazar Miljenovic
Ivan.Miljenovic at

More information about the Libraries mailing list