Why doesn't 'ZonedTime' have an 'Eq' or 'Ord' instance
haskell, time
Solution
I can only speculate that the reason is that it is not entirely clear how times that have different zones attached should be compared, and it is easy enough to convert them to `UTCTime` using `zonedTimeToUTC` and compare the results if that's what's intended.
Problem
In the `time` package we have the type `ZonedTime` which represents a `LocalTime` a product of `localDay :: Day` and `localTimeOfDay :: TimeOfDay`. `LocalTime` has instances for `Eq` and `Ord`, but `ZonedTime` does not. It seems to me that `ZonedTime`s ought to be compared from an absolute reference frame still—at least as much as `LocalTime`s could be. Why doesn't `ZonedTime` have `Eq` and `Ord` instances as well? It's worth noting that the `time` rewrite `thyme` actually does have `Eq` and `Ord` instances, though I'd prefer not to use non-standard time types unless needed.