module Erebos.Conversation.Class ( ConversationType(..), RefDigest, ) where import Data.Text (Text) import Data.Time.LocalTime import Data.Typeable import Erebos.Identity import Erebos.Object class (Typeable conv, Typeable msg) => ConversationType conv msg | conv -> msg, msg -> conv where convMessageFrom :: msg -> ComposedIdentity convMessageTime :: msg -> ZonedTime convMessageText :: msg -> Maybe Text convReference :: conv -> RefDigest convMessageListSince :: Maybe conv -> conv -> [ ( msg, Bool ) ]