packages feed

telega-0.2.8: Network/API/Telegram/Bot/Object/Chat.hs

module Network.API.Telegram.Bot.Object.Chat (module Exports, Chat, ID (..)) where

import Network.API.Telegram.Bot.Object.Chat.Group as Exports
import Network.API.Telegram.Bot.Object.Chat.Conversation as Exports
import Network.API.Telegram.Bot.Object.Chat.Channel as Exports

import "base" Data.Functor ((<$>))
import "base" Data.Int (Int64)

import Network.API.Telegram.Bot.Property (Accessible (access), ID)

data Chat

data instance ID Chat = CHAT Int64

instance Accessible (ID Chat) Channel where
	access f (Channel i title) = (\(CHAT i') -> Channel i' title) <$> f (CHAT i)

instance Accessible (ID Chat) Conversation where
	access f (Conversation i) = (\(CHAT i') -> Conversation i') <$> f (CHAT i)

instance Accessible (ID Chat) Group where
	access f (Basic i title) = (\(CHAT i') -> Basic i' title) <$> f (CHAT i)
	access f (Super i title description) = (\(CHAT i') -> Super i' title description) <$> f (CHAT i)