{-# LANGUAGE RankNTypes #-}
{-# LANGUAGE TemplateHaskell #-}
module Network.Mattermost.Lenses where
import Network.Mattermost.Types.Internal
import Network.Mattermost.Types
import Network.Mattermost.WebSocket.Types
import Network.Mattermost.TH
type Lens' a b = forall f. Functor f => (b -> f b) -> (a -> f a)
suffixLenses ''ConnectionData
suffixLenses ''Login
suffixLenses ''Team
suffixLenses ''TeamMember
suffixLenses ''UserNotifyProps
suffixLenses ''ChannelNotifyProps
suffixLenses ''ChannelData
suffixLenses ''User
suffixLenses ''Post
suffixLenses ''PendingPost
suffixLenses ''Posts
suffixLenses ''Reaction
suffixLenses ''WebsocketEvent
suffixLenses ''WEData
suffixLenses ''WEBroadcast
suffixLenses ''CommandResponse
suffixLenses ''CommandResponseType