Hi,
I'm trying to speed up Data.Time (the time package) 'cause my program is spending a very substantial fraction of time manipulating dates.
I decided to start with strictifying and unpacking the date/time types, as there's no point in having them be lazy and I indeed had a lot of allocation in date/time arithmetic in my performance profile.
data UTCTime = UTCTime {
utctDay :: {-# UNPACK #-} !Day,
utctDayTime :: {-# UNPACK #-} !DiffTime
}