Durations and generalized time parsing

Relative-date provides two modules. Data.Duration gives functions for the creation of durations of time, represented as functions from DateTime to DateTime. Data.DateTime.Parser presents miscellaneous parsers for handling time descriptions of varying levels of detail. The library also can parse descriptions of repeated times, returning a (possibly infinite) list of DateTimes.