-- | -- Module : Web.Bot.Message -- Copyright : Alexander Krupenkin 2017 -- License : BSD3 -- -- Maintainer : mail@akru.me -- Stability : experimental -- Portability : portable -- -- Common used message type. -- module Web.Bot.Message where import Data.String (IsString(..)) import Data.Text (Text) -- | Generalized message type data Message = MsgTyping -- ^ When is typing | MsgText Text -- ^ Simple text | MsgKeyboard Text [[Text]] -- ^ Interactive keyboard deriving (Eq, Ord, Show) instance IsString Message where fromString = MsgText . fromString -- | Convert any data to message class ToMessage a where toMessage :: a -> Message instance ToMessage Message where toMessage = id instance ToMessage Text where toMessage = MsgText