Haskell time library: Weekday and Month
wren ng thornton
wren at community.haskell.org
Fri Apr 16 01:34:50 EDT 2010
Henning Thielemann wrote:
>
> I recently wanted to move from old-time to time in my bibtex package,
> but I was no longer so enthusiastic about it, when I became aware, that
> for instance weekdays and months are handled as plain numbers. Wouldn't
> it be better to make them enumerations or newtypes (if efficiency is
> important)? For a complex matter like coping with time it would be nice
> to have precise types in order to know, what can be converted to what
> given what context. In case of weekdays and months a custom type would
> also make it irrelevant for the user, whether you count days and months
> starting from zero or one.
I'm all for using newtypes instead of plain numbers, but there are some
problems. Namely, what *is* a "day"? Is 31 a day? Well, it depends which
month we're in. Is 364 a day? Well, it depends whether days include days
of the year instead of just days of some month. Is 4982 a day? Not if we
take "day" to be ordinal, naming the days of the month/year; but it
would be fine if we consider "day" as a unit of duration for cardinals.
Similar problems arise for the definition of a "second" (due to leap
seconds), and for other units for similar reasons. This may be why they
didn't use enumerations/newtypes. But I think using newtypes for the
ordinal concepts (and ignoring the cardinal concepts) is better than
doing nothing.
--
Live well,
~wren
More information about the Libraries
mailing list