diff options
Diffstat (limited to 'Types.hs')
-rw-r--r-- | Types.hs | 6 |
1 files changed, 5 insertions, 1 deletions
@@ -22,6 +22,7 @@ import JSON import qualified Data.Text as T import Data.Time.Clock.POSIX +import qualified Data.Semigroup as Sem -- | Things that the developer sees. data Seen = Seen @@ -194,9 +195,12 @@ newtype ElapsedTime = ElapsedTime Double mkElapsedTime :: POSIXTime -> POSIXTime -> ElapsedTime mkElapsedTime start end = ElapsedTime $ fromRational $ toRational (end - start) +instance Sem.Semigroup ElapsedTime where + ElapsedTime a <> ElapsedTime b = ElapsedTime (a+b) + instance Monoid ElapsedTime where mempty = ElapsedTime 0 - mappend (ElapsedTime a) (ElapsedTime b) = ElapsedTime (a+b) + mappend = (Sem.<>) instance DataSize ElapsedTime where dataSize _ = 16 -- 128 bit Double |