taskell-1.9.1.0: src/Data/Taskell/Date/Types.hs
{-# LANGUAGE NoImplicitPrelude #-}
module Data.Taskell.Date.Types
( Deadline(..)
, Due(..)
) where
import ClassyPrelude
data Due
= DueTime UTCTime
| DueDate Day
deriving (Show, Eq)
instance Ord Due where
compare (DueTime t) (DueDate d) = t `compare` UTCTime d 0
compare (DueDate d) (DueTime t) = UTCTime d 0 `compare` t
compare (DueDate d1) (DueDate d2) = d1 `compare` d2
compare (DueTime t1) (DueTime t2) = t1 `compare` t2
data Deadline
= Passed
| Today
| Tomorrow
| ThisWeek
| Plenty
deriving (Show, Eq)