module Eternity.Timestamped.Data.TypesAndInstances
where
import Eternity.Timestamped.Prelude
import qualified Generic.Random as A
data Timestamped event = Timestamped !Timestamp !event
newtype Timestamp = Timestamp Int64
deriving instance Eq a => Eq (Timestamped a)
deriving instance Ord a => Ord (Timestamped a)
deriving instance Show a => Show (Timestamped a)
deriving instance Functor Timestamped
deriving instance Generic (Timestamped a)
instance Arbitrary a => Arbitrary (Timestamped a) where arbitrary = A.genericArbitraryU
instance Hashable a => Hashable (Timestamped a)
instance Serialize a => Serialize (Timestamped a)
deriving instance Eq Timestamp
deriving instance Ord Timestamp
deriving instance Show Timestamp
deriving instance Generic Timestamp
instance Arbitrary Timestamp where arbitrary = A.genericArbitraryU
instance Hashable Timestamp
instance Serialize Timestamp