packages feed

telegram-types 0.3.1 → 0.4.0

raw patch · 16 files changed

+199/−623 lines, 16 filesdep +timedep −hashable

Dependencies added: time

Dependencies removed: hashable

Files

src/Web/Telegram/Types.hs view
@@ -16,7 +16,6 @@     ParseMode (..),      -- ** Chat-    ChatId (..),     Chat (..),     ChatType (..),     ChatPermissions (..),@@ -92,7 +91,7 @@  import Data.Aeson import Data.Coerce-import Data.Hashable+import Data.Int import Data.OpenUnion import Data.Text (Text) import Deriving.Aeson@@ -103,16 +102,6 @@ import Web.Telegram.Types.Internal.Sticker import Web.Telegram.Types.Internal.User import Web.Telegram.Types.Internal.Utils--data ChatId-  = ChatId Integer-  | ChanId Text-  deriving (Show, Eq, Generic, Default, Hashable)-  deriving (FromJSON, ToJSON) via UntaggedSum ChatId--instance ToHttpApiData ChatId where-  toQueryParam (ChatId i) = toQueryParam i-  toQueryParam (ChanId t) = t  -- | Alias to coerce coe :: Coercible a b => a -> b
src/Web/Telegram/Types/Interaction.hs view
@@ -29,7 +29,6 @@ where  import Data.Aeson-import Data.Hashable import Data.OpenUnion import Deriving.Aeson import Servant.API@@ -66,6 +65,6 @@   | FindLocation   | RecordVideoNote   | UploadVideoNote-  deriving (Show, Eq, Ord, Generic, Default, Hashable)+  deriving (Show, Eq, Ord, Generic, Default)   deriving (ToJSON, FromJSON) via Snake Action   deriving (ToHttpApiData) via Serialize Action
src/Web/Telegram/Types/Internal/Common.hs view
@@ -12,8 +12,9 @@  import Control.Applicative import Data.Aeson-import Data.Hashable+import Data.Int import Data.Text (Text)+import Data.Time.Clock.POSIX import Deriving.Aeson import Servant.API import Web.Telegram.Types.Internal.Keyboard@@ -28,7 +29,7 @@   | Group   | Supergroup   | Channel-  deriving (Show, Eq, Ord, Enum, Generic, Default, Hashable)+  deriving (Show, Eq, Ord, Enum, Generic, Default)   deriving     (FromJSON, ToJSON)     via CustomJSON '[SumUntaggedValue, ConstructorTagModifier CamelToSnake] ChatType@@ -37,7 +38,7 @@ -- | https://core.telegram.org/bots/api#chat data Chat   = Chat-      { chatId :: Integer,+      { chatId :: Int64,         chatType :: ChatType,         title :: Maybe Text,         username :: Maybe Text,@@ -48,11 +49,11 @@         inviteLink :: Maybe Text,         pinnedMessage :: Maybe Message,         permissions :: Maybe ChatPermissions,-        slowModeDelay :: Maybe Integer,-        stickerSetName :: Maybe Integer,+        slowModeDelay :: Maybe Int,+        stickerSetName :: Maybe Int,         canSetStickerSet :: Maybe Bool       }-  deriving (Show, Eq, Generic, Default, Hashable)+  deriving (Show, Eq, Generic, Default)   deriving     (FromJSON, ToJSON)     via PrefixedSnake "chat" Chat@@ -63,7 +64,7 @@       { metadata :: MessageMetadata,         content :: MessageContent       }-  deriving (Show, Eq, Generic, Default, Hashable)+  deriving (Show, Eq, Generic, Default)   deriving (ToHttpApiData) via Serialize Message  instance FromJSON Message where@@ -81,23 +82,23 @@ -- | data MessageMetadata   = MMetadata-      { messageId :: Integer,+      { messageId :: Int,         from :: Maybe User,-        date :: Integer,+        date :: POSIXTime,         chat :: Chat,         forwardFrom :: Maybe User,         forwardFromChat :: Maybe Chat,-        forwardFromMessageId :: Maybe Integer,+        forwardFromMessageId :: Maybe Int,         forwardSignature :: Maybe Text,         forwardSenderName :: Maybe Text,-        forwardDate :: Maybe Integer,+        forwardDate :: Maybe POSIXTime,         replyToMessage :: Maybe Message,-        editDate :: Maybe Integer,+        editDate :: Maybe POSIXTime,         mediaGroupId :: Maybe Text,         authorSignature :: Maybe Text,         replyMarkup :: Maybe InlineKeyboardMarkup       }-  deriving (Show, Eq, Generic, Default, Hashable)+  deriving (Show, Eq, Generic, Default)   deriving     (FromJSON, ToJSON)     via CustomJSON '[SumUntaggedValue, FieldLabelModifier CamelToSnake] MessageMetadata@@ -179,10 +180,10 @@       { channelChatCreated :: Bool       }   | MigrateToChatId-      { migrateToChatId :: Integer+      { migrateToChatId :: Int64       }   | MigrateFromChatId-      { migrateFromChatId :: Integer+      { migrateFromChatId :: Int64       }   | PinnedMessage       { pinnedMessage :: Message@@ -199,7 +200,7 @@   | PassportData       { passPortData :: PassportData       }-  deriving (Show, Eq, Generic, Default, Hashable)+  deriving (Show, Eq, Generic, Default)   deriving     (FromJSON, ToJSON)     via CustomJSON '[SumUntaggedValue, FieldLabelModifier CamelToSnake] MessageContent@@ -221,7 +222,7 @@   | Pre   | TextLink   | TextMention-  deriving (Show, Eq, Ord, Enum, Generic, Default, Hashable)+  deriving (Show, Eq, Ord, Enum, Generic, Default)   deriving     (FromJSON, ToJSON)     via CustomJSON '[SumUntaggedValue, ConstructorTagModifier CamelToSnake] MessageEntityType@@ -230,13 +231,13 @@ data MessageEntity   = MessageEntity       { entityType :: MessageEntityType,-        offset :: Integer,-        length :: Integer,+        offset :: Int,+        length :: Int,         url :: Maybe Text,         user :: Maybe User,         language :: Maybe Text       }-  deriving (Show, Eq, Generic, Default, Hashable)+  deriving (Show, Eq, Generic, Default)   deriving     (FromJSON, ToJSON)     via PrefixedSnake "entity" MessageEntity@@ -252,7 +253,7 @@         callbackData :: Maybe Text,         gameShortName :: Maybe Text       }-  deriving (Show, Eq, Generic, Default, Hashable)+  deriving (Show, Eq, Generic, Default)   deriving     (FromJSON, ToJSON)     via PrefixedSnake "callback" CallbackQuery@@ -265,7 +266,7 @@         bigFileId :: Text,         bitFileUniqueId :: Text       }-  deriving (Show, Eq, Generic, Default, Hashable)+  deriving (Show, Eq, Generic, Default)   deriving     (FromJSON, ToJSON)     via Snake ChatPhoto@@ -278,7 +279,7 @@   | Restricted   | Left   | Kicked-  deriving (Show, Eq, Ord, Enum, Generic, Default, Hashable)+  deriving (Show, Eq, Ord, Enum, Generic, Default)   deriving     (FromJSON, ToJSON)     via CustomJSON '[SumUntaggedValue, ConstructorTagModifier CamelToSnake] ChatStatus@@ -288,8 +289,8 @@   = ChatMember       { user :: User,         status :: ChatStatus,-        customTitle :: Text,-        untilDate :: Maybe Integer,+        customTitle :: Maybe Text,+        untilDate :: Maybe POSIXTime,         canBeEdited :: Maybe Bool,         canPostMessages :: Maybe Bool,         canEditMessages :: Maybe Bool,@@ -306,7 +307,7 @@         canSendOtherMesssages :: Maybe Bool,         canAddWebPagePreviews :: Maybe Bool       }-  deriving (Show, Eq, Generic, Default, Hashable)+  deriving (Show, Eq, Generic, Default)   deriving     (FromJSON, ToJSON)     via Snake ChatMember@@ -323,7 +324,7 @@         canInviteUsers :: Maybe Bool,         canPinMessages :: Maybe Bool       }-  deriving (Show, Eq, Generic, Default, Hashable)+  deriving (Show, Eq, Generic, Default)   deriving     (FromJSON, ToJSON)     via Snake ChatPermissions@@ -334,7 +335,7 @@       { command :: Text,         description :: Text       }-  deriving (Show, Eq, Generic, Default, Hashable)+  deriving (Show, Eq, Generic, Default)   deriving     (FromJSON, ToJSON)     via OmitNothing BotCommand@@ -343,9 +344,9 @@ data LabeledPrice   = LabeledPrice       { label :: Text,-        amount :: Integer+        amount :: Int       }-  deriving (Show, Eq, Generic, Default, Hashable)+  deriving (Show, Eq, Generic, Default)   deriving     (FromJSON, ToJSON)     via OmitNothing LabeledPrice@@ -357,9 +358,9 @@         description :: Text,         startParameter :: Text,         currency :: Text,-        totalAmount :: Integer+        totalAmount :: Int       }-  deriving (Show, Eq, Generic, Default, Hashable)+  deriving (Show, Eq, Generic, Default)   deriving     (FromJSON, ToJSON)     via Snake Invoice@@ -374,7 +375,7 @@         streetLine2 :: Text,         postCode :: Text       }-  deriving (Show, Eq, Generic, Default, Hashable)+  deriving (Show, Eq, Generic, Default)   deriving     (FromJSON, ToJSON)     via Snake ShippingAddress@@ -387,7 +388,7 @@         email :: Maybe Text,         shippingAddress :: ShippingAddress       }-  deriving (Show, Eq, Generic, Default, Hashable)+  deriving (Show, Eq, Generic, Default)   deriving     (FromJSON, ToJSON)     via Snake OrderInfo@@ -399,7 +400,7 @@         title :: Text,         prices :: Text       }-  deriving (Show, Eq, Generic, Default, Hashable)+  deriving (Show, Eq, Generic, Default)   deriving     (FromJSON, ToJSON)     via PrefixedSnake "option" ShippingOption@@ -408,14 +409,14 @@ data SuccessfulPayment   = SuccessfulPayment       { currency :: Text,-        totalAmount :: Integer,+        totalAmount :: Int,         invoicePayload :: Text,         shippingOptionId :: Maybe Text,         orderInfo :: Maybe OrderInfo,         telegramPaymentChargeId :: Text,         providerPaymentChargeId :: Text       }-  deriving (Show, Eq, Generic, Default, Hashable)+  deriving (Show, Eq, Generic, Default)   deriving     (FromJSON, ToJSON)     via Snake SuccessfulPayment@@ -428,7 +429,7 @@         invoicePayload :: Text,         shippingAddress :: ShippingAddress       }-  deriving (Show, Eq, Generic, Default, Hashable)+  deriving (Show, Eq, Generic, Default)   deriving     (FromJSON, ToJSON)     via PrefixedSnake "query" ShippingQuery@@ -439,12 +440,12 @@       { queryId :: Text,         from :: User,         currency :: Text,-        totalAmount :: Integer,+        totalAmount :: Int,         invoicePayload :: Text,         shippingOptionId :: Maybe String,         orderInfo :: Maybe OrderInfo       }-  deriving (Show, Eq, Generic, Default, Hashable)+  deriving (Show, Eq, Generic, Default)   deriving     (FromJSON, ToJSON)     via PrefixedSnake "query" PreCheckoutQuery@@ -459,7 +460,7 @@         textEntities :: Maybe MessageEntity,         animation :: Animation       }-  deriving (Show, Eq, Generic, Default, Hashable)+  deriving (Show, Eq, Generic, Default)   deriving     (FromJSON, ToJSON)     via Snake Game@@ -469,11 +470,11 @@  data GameHighScore   = GameHighScore-      { position :: Integer,+      { position :: Int,         user :: User,-        score :: Integer+        score :: Int       }-  deriving (Show, Eq, Generic, Default, Hashable)+  deriving (Show, Eq, Generic, Default)   deriving     (FromJSON, ToJSON)     via OmitNothing GameHighScore@@ -481,10 +482,10 @@  data ResponseParameters   = ResponseParameters-      { migrateToChatId :: Maybe Integer,-        retryAfter :: Maybe Integer+      { migrateToChatId :: Maybe Int64,+        retryAfter :: Maybe Int       }-  deriving (Show, Eq, Generic, Default, Hashable)+  deriving (Show, Eq, Generic, Default)   deriving     (FromJSON, ToJSON)     via Snake ResponseParameters
src/Web/Telegram/Types/Internal/InlineQuery.hs view
@@ -7,7 +7,6 @@ module Web.Telegram.Types.Internal.InlineQuery where  import Data.Aeson-import Data.Hashable import Data.Text (Text) import Deriving.Aeson import Servant.API@@ -25,7 +24,7 @@         query :: Text,         offset :: Text       }-  deriving (Show, Eq, Generic, Default, Hashable)+  deriving (Show, Eq, Generic, Default)   deriving     (FromJSON, ToJSON)     via PrefixedSnake' "query" InlineQuery@@ -42,16 +41,16 @@         hideUrl :: Maybe Bool,         description :: Maybe Text,         thumbUrl :: Maybe Text,-        thumbWidth :: Maybe Integer,-        thumbHeight :: Maybe Integer+        thumbWidth :: Maybe Int,+        thumbHeight :: Maybe Int       }   | InlineQueryResultPhoto       { resultType :: Text,         resultId :: Text,         photoUrl :: Text,         thumbUrl' :: Text,-        photoWidth :: Maybe Integer,-        photoHeight :: Maybe Integer,+        photoWidth :: Maybe Int,+        photoHeight :: Maybe Int,         resultTitle :: Maybe Text,         description :: Maybe Text,         caption :: Maybe Text,@@ -63,9 +62,9 @@       { resultType :: Text,         resultId :: Text,         gifUrl :: Text,-        gifWidth :: Maybe Integer,-        gifHeight :: Maybe Integer,-        gifDuration :: Maybe Integer,+        gifWidth :: Maybe Int,+        gifHeight :: Maybe Int,+        gifDuration :: Maybe Int,         thumbUrl' :: Text,         resultTitle :: Maybe Text,         caption :: Maybe Text,@@ -77,9 +76,9 @@       { resultType :: Text,         resultId :: Text,         mpeg4Url :: Text,-        mpeg4Width :: Maybe Integer,-        mpeg4Height :: Maybe Integer,-        mpeg4Duration :: Maybe Integer,+        mpeg4Width :: Maybe Int,+        mpeg4Height :: Maybe Int,+        mpeg4Duration :: Maybe Int,         thumbUrl' :: Text,         resultTitle :: Maybe Text,         caption :: Maybe Text,@@ -96,9 +95,9 @@         title :: Text,         caption :: Maybe Text,         parseMode :: Maybe ParseMode,-        videoWidth :: Maybe Integer,-        videoHeight :: Maybe Integer,-        videoDuration :: Maybe Integer,+        videoWidth :: Maybe Int,+        videoHeight :: Maybe Int,+        videoDuration :: Maybe Int,         description :: Maybe Text,         replyMarkup :: Maybe InlineKeyboardMarkup,         inputMessageContent :: Maybe InputMessageContent@@ -111,7 +110,7 @@         caption :: Maybe Text,         parseMode :: Maybe ParseMode,         performer :: Maybe Text,-        audioDuration :: Maybe Integer,+        audioDuration :: Maybe Int,         replyMarkup :: Maybe InlineKeyboardMarkup,         inputMessageContent :: Maybe InputMessageContent       }@@ -122,7 +121,7 @@         title :: Text,         caption :: Maybe Text,         parseMode :: Maybe ParseMode,-        voiceDuration :: Maybe Integer,+        voiceDuration :: Maybe Int,         replyMarkup :: Maybe InlineKeyboardMarkup,         inputMessageContent :: Maybe InputMessageContent       }@@ -138,8 +137,8 @@         replyMarkup :: Maybe InlineKeyboardMarkup,         inputMessageContent :: Maybe InputMessageContent,         thumbUrl :: Maybe Text,-        thumbWidth :: Maybe Integer,-        thumbHeight :: Maybe Integer+        thumbWidth :: Maybe Int,+        thumbHeight :: Maybe Int       }   | InlineQueryResultLocation       { resultType :: Text,@@ -147,12 +146,12 @@         latitude :: Float,         longitude :: Float,         title :: Text,-        livePeriod :: Maybe Integer,+        livePeriod :: Maybe Int,         replyMarkup :: Maybe InlineKeyboardMarkup,         inputMessageContent :: Maybe InputMessageContent,         thumbUrl :: Maybe Text,-        thumbWidth :: Maybe Integer,-        thumbHeight :: Maybe Integer+        thumbWidth :: Maybe Int,+        thumbHeight :: Maybe Int       }   | InlineQueryResultVenue       { resultType :: Text,@@ -166,8 +165,8 @@         replyMarkup :: Maybe InlineKeyboardMarkup,         inputMessageContent :: Maybe InputMessageContent,         thumbUrl :: Maybe Text,-        thumbWidth :: Maybe Integer,-        thumbHeight :: Maybe Integer+        thumbWidth :: Maybe Int,+        thumbHeight :: Maybe Int       }   | InlineQueryResultContact       { resultType :: Text,@@ -179,8 +178,8 @@         replyMarkup :: Maybe InlineKeyboardMarkup,         inputMessageContent :: Maybe InputMessageContent,         thumbUrl :: Maybe Text,-        thumbWidth :: Maybe Integer,-        thumbHeight :: Maybe Integer+        thumbWidth :: Maybe Int,+        thumbHeight :: Maybe Int       }   | InlineQueryResultGame       { resultType :: Text,@@ -268,7 +267,7 @@         replyMarkup :: Maybe InlineKeyboardMarkup,         inputMessageContent :: Maybe InputMessageContent       }-  deriving (Show, Eq, Generic, Default, Hashable)+  deriving (Show, Eq, Generic, Default)   deriving     (FromJSON, ToJSON)     via PrefixedSnake "result" InlineQueryResult@@ -282,7 +281,7 @@         inlineMessageId :: Maybe Text,         query :: Text       }-  deriving (Show, Eq, Generic, Default, Hashable)+  deriving (Show, Eq, Generic, Default)   deriving     (FromJSON, ToJSON)     via Snake ChosenInlineResult
src/Web/Telegram/Types/Internal/InputFile.hs view
@@ -14,7 +14,6 @@  import Data.ByteString.Lazy (ByteString) import qualified Data.ByteString.Lazy as LBS-import Data.Hashable import Data.Proxy import Data.Text (Text, pack) import Data.Text.Encoding@@ -31,7 +30,7 @@         mimeType :: Text,         content :: ByteString       }-  deriving (Show, Eq, Generic, Default, Hashable)+  deriving (Show, Eq, Generic, Default)  readInput :: FilePath -> IO InputFile readInput fp = do@@ -59,53 +58,53 @@       }  newtype Cert = Cert InputFile-  deriving (Show, Eq, Generic, Default, Hashable)+  deriving (Show, Eq, Generic, Default)   deriving (Multi) via InputF "certificate"  newtype Thumb = Thumb InputFile-  deriving (Show, Eq, Generic, Default, Hashable)+  deriving (Show, Eq, Generic, Default)   deriving (Multi) via InputF "thumb"  newtype Photo = Photo InputFile-  deriving (Show, Eq, Generic, Default, Hashable)+  deriving (Show, Eq, Generic, Default)   deriving (Multi) via InputF "photo"  newtype Audio = Audio InputFile-  deriving (Show, Eq, Generic, Default, Hashable)+  deriving (Show, Eq, Generic, Default)   deriving (Multi) via InputF "audio"  newtype Doc = Doc InputFile-  deriving (Show, Eq, Generic, Default, Hashable)+  deriving (Show, Eq, Generic, Default)   deriving (Multi) via InputF "document"  newtype Video = Video InputFile-  deriving (Show, Eq, Generic, Default, Hashable)+  deriving (Show, Eq, Generic, Default)   deriving (Multi) via InputF "video"  newtype Animation = Animation InputFile-  deriving (Show, Eq, Generic, Default, Hashable)+  deriving (Show, Eq, Generic, Default)   deriving (Multi) via InputF "animation"  newtype Voice = Voice InputFile-  deriving (Show, Eq, Generic, Default, Hashable)+  deriving (Show, Eq, Generic, Default)   deriving (Multi) via InputF "voice"  newtype VideoNote = VideoNote InputFile-  deriving (Show, Eq, Generic, Default, Hashable)+  deriving (Show, Eq, Generic, Default)   deriving (Multi) via InputF "video_note"  newtype Sticker = Sticker InputFile-  deriving (Show, Eq, Generic, Default, Hashable)+  deriving (Show, Eq, Generic, Default)   deriving (Multi) via InputF "sticker"  newtype PngSticker = PngSticker InputFile-  deriving (Show, Eq, Generic, Default, Hashable)+  deriving (Show, Eq, Generic, Default)   deriving (Multi) via InputF "png_sticker"  newtype TgsSticker = TgsSticker InputFile-  deriving (Show, Eq, Generic, Default, Hashable)+  deriving (Show, Eq, Generic, Default)   deriving (Multi) via InputF "tgs_sticker"  newtype Media = Media InputFile-  deriving (Show, Eq, Generic, Default, Hashable)+  deriving (Show, Eq, Generic, Default)   deriving (Multi) via InputF "media"
src/Web/Telegram/Types/Internal/InputMedia.hs view
@@ -14,7 +14,6 @@ module Web.Telegram.Types.Internal.InputMedia where  import Data.Aeson-import Data.Hashable import Data.Maybe (catMaybes) import Data.OpenUnion import Data.Text (Text)@@ -28,7 +27,7 @@   = MarkdownV2   | HTML   | Markdown-  deriving (Show, Eq, Ord, Enum, Generic, Default, Hashable)+  deriving (Show, Eq, Ord, Enum, Generic, Default)   deriving     (FromJSON, ToJSON)     via OmitNothing ParseMode@@ -85,11 +84,11 @@         thumb :: Maybe Text,         caption :: Maybe Text,         parseMode :: Maybe ParseMode,-        width :: Maybe Integer,-        height :: Maybe Integer,-        duration :: Maybe Integer+        width :: Maybe Int,+        height :: Maybe Int,+        duration :: Maybe Int       }-  deriving (Show, Eq, Generic, Default, Hashable)+  deriving (Show, Eq, Generic, Default)   deriving (ToHttpApiData) via Serialize InputMediaAnimation  (.=?) :: ToJSON v => Text -> Maybe v -> Maybe (Text, Value)@@ -125,11 +124,11 @@         thumb :: Maybe Text,         caption :: Maybe Text,         parseMode :: Maybe ParseMode,-        duration :: Maybe Integer,+        duration :: Maybe Int,         performer :: Maybe Text,         title :: Maybe Text       }-  deriving (Show, Eq, Generic, Default, Hashable)+  deriving (Show, Eq, Generic, Default)   deriving (ToHttpApiData) via Serialize InputMediaAudio  instance ToJSON InputMediaAudio where@@ -163,7 +162,7 @@         caption :: Maybe Text,         parseMode :: Maybe ParseMode       }-  deriving (Show, Eq, Generic, Default, Hashable)+  deriving (Show, Eq, Generic, Default)   deriving (ToHttpApiData) via Serialize InputMediaDocument  instance ToJSON InputMediaDocument where@@ -193,7 +192,7 @@         caption :: Maybe Text,         parseMode :: Maybe ParseMode       }-  deriving (Show, Eq, Generic, Default, Hashable)+  deriving (Show, Eq, Generic, Default)   deriving (ToHttpApiData) via Serialize InputMediaPhoto  instance ToJSON InputMediaPhoto where@@ -223,7 +222,7 @@         caption :: Maybe Text,         parseMode :: Maybe ParseMode       }-  deriving (Show, Eq, Generic, Default, Hashable)+  deriving (Show, Eq, Generic, Default)   deriving (ToHttpApiData) via Serialize InputMediaVideo  instance ToJSON InputMediaVideo where@@ -256,7 +255,7 @@   | InputLocationMessageContent       { latitude :: Float,         longitude :: Float,-        livePeriod :: Maybe Integer+        livePeriod :: Maybe Int       }   | InputVenueMessageContent       { latitude :: Float,@@ -272,7 +271,7 @@         lastName :: Maybe Text,         vcard :: Maybe Text       }-  deriving (Show, Eq, Generic, Default, Hashable)+  deriving (Show, Eq, Generic, Default)   deriving     (FromJSON, ToJSON)     via Snake InputMessageContent
src/Web/Telegram/Types/Internal/Keyboard.hs view
@@ -10,7 +10,6 @@  import Data.Aeson import Data.Aeson.Types-import Data.Hashable import Data.Text (Text) import Deriving.Aeson import Servant.API@@ -24,7 +23,7 @@         oneTimeKeyboard :: Maybe Bool,         selective :: Maybe Bool       }-  deriving (Show, Eq, Generic, Default, Hashable)+  deriving (Show, Eq, Generic, Default)   deriving     (ToJSON)     via Snake ReplyKeyboardMarkup@@ -35,7 +34,7 @@       { text :: Text,         addon :: Maybe KeyboardButtonAddon       }-  deriving (Show, Eq, Generic, Default, Hashable)+  deriving (Show, Eq, Generic, Default)   deriving (ToHttpApiData) via Serialize KeyboardButton  instance ToJSON KeyboardButton where@@ -48,7 +47,7 @@   = RequestContact Bool   | RequestLocation Bool   | RequestPoll KeyboardButtonPollType-  deriving (Show, Eq, Generic, Default, Hashable)+  deriving (Show, Eq, Generic, Default)   deriving     (FromJSON, ToJSON)     via CustomJSON '[ConstructorTagModifier CamelToSnake, SumObjectWithSingleField] KeyboardButtonAddon@@ -57,7 +56,7 @@   = KeyboardButtonPollType       { pollType :: Maybe PollType       }-  deriving (Show, Eq, Generic, Default, Hashable)+  deriving (Show, Eq, Generic, Default)   deriving     (FromJSON, ToJSON)     via PrefixedSnake "poll" KeyboardButtonPollType@@ -68,7 +67,7 @@       { removeKeyboard :: Bool,         selective :: Maybe Bool       }-  deriving (Show, Eq, Generic, Default, Hashable)+  deriving (Show, Eq, Generic, Default)   deriving     (FromJSON, ToJSON)     via Snake ReplyKeyboardRemove@@ -78,7 +77,7 @@   = InlineKeyboardMarkup       { inlineKeyboard :: [[InlineKeyboardButton]]       }-  deriving (Show, Eq, Generic, Default, Hashable)+  deriving (Show, Eq, Generic, Default)   deriving     (ToJSON, FromJSON)     via Snake InlineKeyboardMarkup@@ -94,7 +93,7 @@         switchInlineQueryCurrentChat :: Maybe Text,         pay :: Maybe Bool       }-  deriving (Show, Eq, Generic, Default, Hashable)+  deriving (Show, Eq, Generic, Default)   deriving     (FromJSON, ToJSON)     via Snake InlineKeyboardButton@@ -107,7 +106,7 @@         botUsername :: Maybe Text,         requestWriteAccess :: Maybe Bool       }-  deriving (Show, Eq, Generic, Default, Hashable)+  deriving (Show, Eq, Generic, Default)   deriving     (FromJSON, ToJSON)     via Snake LoginUrl@@ -118,7 +117,7 @@       { forceReply :: Bool,         selective :: Maybe Bool       }-  deriving (Show, Eq, Generic, Default, Hashable)+  deriving (Show, Eq, Generic, Default)   deriving     (FromJSON, ToJSON)     via Snake ForceReply
src/Web/Telegram/Types/Internal/Media.hs view
@@ -7,7 +7,6 @@ module Web.Telegram.Types.Internal.Media where  import Data.Aeson-import Data.Hashable import Data.Text (Text) import Deriving.Aeson import Servant.API@@ -18,11 +17,11 @@   = PhotoSize       { fileId :: Text,         fileUniqueId :: Text,-        width :: Integer,-        height :: Integer,-        fileSize :: Maybe Integer+        width :: Int,+        height :: Int,+        fileSize :: Maybe Int       }-  deriving (Show, Eq, Generic, Default, Hashable)+  deriving (Show, Eq, Generic, Default)   deriving     (FromJSON, ToJSON)     via Snake PhotoSize@@ -32,14 +31,14 @@   = Audio       { fileId :: Text,         fileUniqueId :: Text,-        duration :: Integer,+        duration :: Int,         performer :: Maybe Text,         title :: Maybe Text,         mimeType :: Maybe Text,-        fileSize :: Maybe Integer,+        fileSize :: Maybe Int,         thumb :: Maybe PhotoSize       }-  deriving (Show, Eq, Generic, Default, Hashable)+  deriving (Show, Eq, Generic, Default)   deriving     (FromJSON, ToJSON)     via Snake Audio@@ -52,9 +51,9 @@         thumb :: Maybe PhotoSize,         fileName :: Maybe Text,         mimeType :: Maybe Text,-        fileSize :: Maybe Integer+        fileSize :: Maybe Int       }-  deriving (Show, Eq, Generic, Default, Hashable)+  deriving (Show, Eq, Generic, Default)   deriving     (FromJSON, ToJSON)     via Snake Document@@ -64,14 +63,14 @@   = Video       { fileId :: Text,         fileUniqueId :: Text,-        width :: Integer,-        height :: Integer,-        duration :: Integer,+        width :: Int,+        height :: Int,+        duration :: Int,         thumb :: Maybe PhotoSize,         mimeType :: Maybe Text,-        fileSize :: Maybe Integer+        fileSize :: Maybe Int       }-  deriving (Show, Eq, Generic, Default, Hashable)+  deriving (Show, Eq, Generic, Default)   deriving     (FromJSON, ToJSON)     via Snake Video@@ -81,15 +80,15 @@   = Animation       { fileId :: Text,         fileUniqueId :: Text,-        width :: Integer,-        height :: Integer,-        duration :: Integer,+        width :: Int,+        height :: Int,+        duration :: Int,         thumb :: Maybe PhotoSize,         fileName :: Maybe Text,         mimeType :: Maybe Text,-        fileSize :: Integer+        fileSize :: Int       }-  deriving (Show, Eq, Generic, Default, Hashable)+  deriving (Show, Eq, Generic, Default)   deriving     (FromJSON, ToJSON)     via Snake Animation@@ -99,11 +98,11 @@   = Voice       { fileId :: Text,         fileUniqueId :: Text,-        duration :: Integer,+        duration :: Int,         mimeType :: Maybe Text,-        fileSize :: Maybe Integer+        fileSize :: Maybe Int       }-  deriving (Show, Eq, Generic, Default, Hashable)+  deriving (Show, Eq, Generic, Default)   deriving     (FromJSON, ToJSON)     via Snake Voice@@ -113,12 +112,12 @@   = VideoNote       { fileId :: Text,         fileUniqueId :: Text,-        length :: Integer,-        duration :: Integer,+        length :: Int,+        duration :: Int,         thumb :: Maybe PhotoSize,-        fileSize :: Integer+        fileSize :: Int       }-  deriving (Show, Eq, Generic, Default, Hashable)+  deriving (Show, Eq, Generic, Default)   deriving     (FromJSON, ToJSON)     via Snake VideoNote@@ -129,10 +128,10 @@       { phoneNumber :: Text,         firstName :: Text,         lastName :: Maybe Text,-        userId :: Maybe Integer,+        userId :: Maybe Int,         vcard :: Maybe Text       }-  deriving (Show, Eq, Generic, Default, Hashable)+  deriving (Show, Eq, Generic, Default)   deriving     (FromJSON, ToJSON)     via Snake Contact@@ -143,7 +142,7 @@       { longitude :: Float,         latitude :: Float       }-  deriving (Show, Eq, Generic, Default, Hashable)+  deriving (Show, Eq, Generic, Default)   deriving     (FromJSON, ToJSON)     via OmitNothing Location@@ -157,7 +156,7 @@         foursquareId :: Maybe Text,         foursquareType :: Maybe Text       }-  deriving (Show, Eq, Generic, Default, Hashable)+  deriving (Show, Eq, Generic, Default)   deriving     (FromJSON, ToJSON)     via Snake Venue@@ -166,9 +165,9 @@ data PollOption   = PollOption       { text :: Text,-        voterCount :: Integer+        voterCount :: Int       }-  deriving (Show, Eq, Generic, Default, Hashable)+  deriving (Show, Eq, Generic, Default)   deriving     (FromJSON, ToJSON)     via Snake PollOption@@ -178,9 +177,9 @@   = PollAnswer       { pollId :: Text,         user :: User,-        optionIds :: [Integer]+        optionIds :: [Int]       }-  deriving (Show, Eq, Generic, Default, Hashable)+  deriving (Show, Eq, Generic, Default)   deriving     (FromJSON, ToJSON)     via PrefixedSnake "poll" PollAnswer@@ -189,7 +188,7 @@ data PollType   = Regular   | Quiz-  deriving (Show, Eq, Generic, Default, Hashable)+  deriving (Show, Eq, Generic, Default)   deriving     (FromJSON, ToJSON)     via CustomJSON '[SumUntaggedValue, ConstructorTagModifier CamelToSnake] PollType@@ -200,14 +199,14 @@       { pollId :: Text,         question :: Text,         options :: [PollOption],-        totalVoterCount :: Integer,+        totalVoterCount :: Int,         isClosed :: Bool,         isAnonymous :: Bool,         pollType :: PollType,         allowsMultipleAnswers :: Bool,-        correctOptionId :: Maybe Integer+        correctOptionId :: Maybe Int       }-  deriving (Show, Eq, Generic, Default, Hashable)+  deriving (Show, Eq, Generic, Default)   deriving     (FromJSON, ToJSON)     via PrefixedSnake "poll" Poll@@ -215,10 +214,10 @@  data UserProfilePhotos   = UserProfilePhotos-      { totalCount :: Integer,+      { totalCount :: Int,         photos :: [[PhotoSize]]       }-  deriving (Show, Eq, Generic, Default, Hashable)+  deriving (Show, Eq, Generic, Default)   deriving     (FromJSON, ToJSON)     via Snake UserProfilePhotos@@ -228,10 +227,10 @@   = File       { fileId :: Text,         fileUniqueId :: Text,-        fileSize :: Maybe Integer,+        fileSize :: Maybe Int,         filePath :: Maybe Text       }-  deriving (Show, Eq, Generic, Default, Hashable)+  deriving (Show, Eq, Generic, Default)   deriving     (FromJSON, ToJSON)     via Snake File
src/Web/Telegram/Types/Internal/Passport.hs view
@@ -6,8 +6,8 @@  module Web.Telegram.Types.Internal.Passport where -import Data.Hashable import Data.Text (Text)+import Data.Time.Clock.POSIX import Deriving.Aeson import Servant.API import Web.Telegram.Types.Internal.Utils@@ -17,7 +17,7 @@       { passportData :: [EncryptedPassportElement],         credentials :: EncryptedCredentials       }-  deriving (Show, Eq, Generic, Default, Hashable)+  deriving (Show, Eq, Generic, Default)   deriving     (FromJSON, ToJSON)     via PrefixedSnake "passport" PassportData@@ -27,10 +27,10 @@   = PassportFile       { fileId :: Text,         fileUniqueId :: Text,-        fileSize :: Integer,-        fileDate :: Integer+        fileSize :: Int,+        fileDate :: POSIXTime       }-  deriving (Show, Eq, Generic, Default, Hashable)+  deriving (Show, Eq, Generic, Default)   deriving     (ToJSON, FromJSON)     via Snake PassportFile@@ -49,7 +49,7 @@         translation :: Maybe [PassportFile],         hash :: Text       }-  deriving (Show, Eq, Generic, Default, Hashable)+  deriving (Show, Eq, Generic, Default)   deriving     (ToJSON, FromJSON)     via PrefixedSnake "element" EncryptedPassportElement@@ -60,7 +60,7 @@         hash :: Text,         secret :: Text       }-  deriving (Show, Eq, Generic, Default, Hashable)+  deriving (Show, Eq, Generic, Default)   deriving     (ToJSON, FromJSON)     via PrefixedSnake "credential" EncryptedCredentials@@ -121,7 +121,7 @@         elementHash :: Text,         message :: Text       }-  deriving (Show, Eq, Generic, Default, Hashable)+  deriving (Show, Eq, Generic, Default)   deriving     (ToJSON, FromJSON)     via PrefixedSnake "error" PassportElementError@@ -141,7 +141,7 @@   | TemporaryRegistration   | PhoneNumber   | Email-  deriving (Show, Eq, Ord, Enum, Generic, Default, Hashable)+  deriving (Show, Eq, Ord, Enum, Generic, Default)   deriving     (FromJSON, ToJSON)     via CustomJSON '[SumUntaggedValue, ConstructorTagModifier CamelToSnake] EncryptedPassportElementType
src/Web/Telegram/Types/Internal/Sticker.hs view
@@ -5,7 +5,6 @@  module Web.Telegram.Types.Internal.Sticker where -import Data.Hashable import Data.Text (Text) import Deriving.Aeson import Servant.API@@ -16,16 +15,16 @@   = Sticker       { fileId :: Text,         fileUniqueId :: Text,-        width :: Integer,-        height :: Integer,+        width :: Int,+        height :: Int,         isAnimated :: Bool,         thumb :: Maybe PhotoSize,         emoji :: Maybe Text,         setName :: Maybe Text,         maskPosition :: Maybe MaskPosition,-        fileSize :: Maybe Integer+        fileSize :: Maybe Int       }-  deriving (Show, Eq, Generic, Default, Hashable)+  deriving (Show, Eq, Generic, Default)   deriving     (FromJSON, ToJSON)     via Snake Sticker@@ -39,7 +38,7 @@         containsMasks :: Bool,         stickers :: [Sticker]       }-  deriving (Show, Eq, Generic, Default, Hashable)+  deriving (Show, Eq, Generic, Default)   deriving     (FromJSON, ToJSON)     via Snake StickerSet@@ -52,7 +51,7 @@         yShift :: Float,         scale :: Float       }-  deriving (Show, Eq, Generic, Default, Hashable)+  deriving (Show, Eq, Generic, Default)   deriving     (FromJSON, ToJSON)     via Snake MaskPosition
src/Web/Telegram/Types/Internal/Update.hs view
@@ -8,9 +8,9 @@ module Web.Telegram.Types.Internal.Update where  import Data.Aeson-import Data.Hashable import Data.Monoid import Data.Text (Text)+import Data.Time.Clock.POSIX import Deriving.Aeson import qualified Web.Telegram.Types.Internal.Common as C import qualified Web.Telegram.Types.Internal.InlineQuery as IQ@@ -22,60 +22,60 @@ data Update   = -- | New incoming message of any kind — text, photo, sticker, etc.     Message-      { updateId :: Integer,+      { updateId :: Int,         message :: C.Message       }   | -- | New version of a message that is known to the bot and was edited     EditedMessage-      { updateId :: Integer,+      { updateId :: Int,         message :: C.Message       }   | -- | New incoming channel post of any kind — text, photo, sticker, etc.     ChannelPost-      { updateId :: Integer,+      { updateId :: Int,         message :: C.Message       }   | -- | New version of a channel post that is known to the bot and was edited     EditedChannelPost-      { updateId :: Integer,+      { updateId :: Int,         message :: C.Message       }   | -- | New incoming inline query     InlineQuery-      { updateId :: Integer,+      { updateId :: Int,         iquery :: IQ.InlineQuery       }   | -- | The result of an inline query that was chosen by a user and sent to their chat partner. Please see our documentation on the feedback collecting for details on how to enable these updates for your bot     ChosenInlineResult-      { updateId :: Integer,+      { updateId :: Int,         result :: IQ.ChosenInlineResult       }   | -- | New incoming callback query     CallbackQuery-      { updateId :: Integer,+      { updateId :: Int,         cbquery :: C.CallbackQuery       }   | -- | New incoming shipping query. Only for invoices with flexible price     ShippingQuery-      { updateId :: Integer,+      { updateId :: Int,         squery :: C.ShippingQuery       }   | -- | New incoming pre-checkout query. Contains full information about checkout     PreCheckoutQuery-      { updateId :: Integer,+      { updateId :: Int,         pcquery :: C.PreCheckoutQuery       }   | -- | New poll state. Bots receive only updates about stopped polls and polls, which are sent by the bot     PollUpdate-      { updateId :: Integer,+      { updateId :: Int,         poll :: M.Poll       }   | -- | A user changed their answer in a non-anonymous poll. Bots receive new votes only in polls that were sent by the bot itself.     PollAnswer-      { updateId :: Integer,+      { updateId :: Int,         answer :: M.PollAnswer       }-  deriving (Show, Eq, Generic, Default, Hashable)+  deriving (Show, Eq, Generic, Default)  instance FromJSON Update where   parseJSON = withObject "Update object" $ \o -> do@@ -110,17 +110,17 @@         -- | True, if a custom certificate was provided for webhook certificate checks         hasCustomCertificate :: Bool,         -- | Number of updates awaiting delivery-        pendingUpdateCount :: Integer,+        pendingUpdateCount :: Int,         -- | Unix time for the most recent error that happened when trying to deliver an update via webhook-        lastErrorDate :: Maybe Integer,+        lastErrorDate :: Maybe POSIXTime,         -- | Error message in human-readable format for the most recent error that happened when trying to deliver an update via webhook         lastErrorMessage :: Maybe Text,         -- | Maximum allowed number of simultaneous HTTPS connections to the webhook for update delivery-        maxConnections :: Maybe Integer,+        maxConnections :: Maybe Int,         -- | A list of update types the bot is subscribed to. Defaults to all update types         allowedUpdates :: Maybe [UpdateType]       }-  deriving (Show, Eq, Generic, Default, Hashable)+  deriving (Show, Eq, Generic, Default)   deriving     (FromJSON, ToJSON)     via Snake WebhookInfo
src/Web/Telegram/Types/Internal/UpdateType.hs view
@@ -5,7 +5,6 @@  module Web.Telegram.Types.Internal.UpdateType where -import Data.Hashable import Deriving.Aeson import Web.Telegram.Types.Internal.Utils @@ -21,7 +20,7 @@   | PreCheckoutQuery   | PollUpdate   | PollAnswer-  deriving (Show, Eq, Generic, Default, Ord, Enum, Hashable)+  deriving (Show, Eq, Generic, Default, Ord, Enum)   deriving     (FromJSON, ToJSON)     via CustomJSON '[SumUntaggedValue, ConstructorTagModifier CamelToSnake] UpdateType
src/Web/Telegram/Types/Internal/User.hs view
@@ -11,7 +11,6 @@ where  import Data.Aeson-import Data.Hashable import Data.Text (Text) import Deriving.Aeson import Servant.API@@ -21,7 +20,7 @@ data User   = User       { -- | Unique identifier for this user or bot-        userId :: Integer,+        userId :: Int,         -- | True, if this user is a bot         isBot :: Bool,         -- | User's or bot's first name@@ -39,7 +38,7 @@         -- | True, if the bot supports inline queries. Returned only in getMe.         supportsInlineQueries :: Maybe Bool       }-  deriving (Show, Eq, Generic, Default, Hashable)+  deriving (Show, Eq, Generic, Default)   deriving     (FromJSON, ToJSON)     via PrefixedSnake' "user" User
src/Web/Telegram/Types/Internal/Utils/Default.hs view
@@ -12,6 +12,7 @@ import Data.Int import Data.OpenUnion import Data.Text (Text)+import Data.Time.Clock.POSIX import GHC.Generics  class GDefault f where@@ -85,3 +86,6 @@  instance (Default a, Typeable a) => Default (Union (a ': as)) where   def = liftUnion (def :: a)++instance Default POSIXTime where+  def = 0
− src/Web/Telegram/Types/Lens.hs
@@ -1,408 +0,0 @@-{-# LANGUAGE DataKinds #-}-{-# LANGUAGE FlexibleContexts #-}-{-# LANGUAGE TypeApplications #-}--module Web.Telegram.Types.Lens {-# DEPRECATED "Use labels from generics-lens instead" #-}  where--import Control.Lens-import Data.Generics.Product--userId :: HasField "userId" s t a b => Lens s t a b-userId = field @"userId"--isBot :: HasField "isBot" s t a b => Lens s t a b-isBot = field @"isBot"--firstName :: HasField "firstName" s t a b => Lens s t a b-firstName = field @"firstName"--lastName :: HasField "lastName" s t a b => Lens s t a b-lastName = field @"lastName"--userName :: HasField "userName" s t a b => Lens s t a b-userName = field @"userName"--languageCode :: HasField "languageCode" s t a b => Lens s t a b-languageCode = field @"languageCode"--canJoinGroups :: HasField "canJoinGroups" s t a b => Lens s t a b-canJoinGroups = field @"canJoinGroups"--canReadAllGroupMessages :: HasField "canReadAllGroupMessages" s t a b => Lens s t a b-canReadAllGroupMessages = field @"canReadAllGroupMessages"--supportsInlineQueries :: HasField "supportsInlineQueries" s t a b => Lens s t a b-supportsInlineQueries = field @"supportsInlineQueries"--metadata :: HasField "metadata" s t a b => Lens s t a b-metadata = field @"metadata"--content :: HasField "content" s t a b => Lens s t a b-content = field @"content"--messageId :: HasField "messageId" s t a b => Lens s t a b-messageId = field @"messageId"--from :: HasField "from" s t a b => Lens s t a b-from = field @"from"--date :: HasField "date" s t a b => Lens s t a b-date = field @"date"--chat :: HasField "chat" s t a b => Lens s t a b-chat = field @"chat"--forwardFrom :: HasField "forwardFrom" s t a b => Lens s t a b-forwardFrom = field @"forwardFrom"--forwardFromChat :: HasField "forwardFromChat" s t a b => Lens s t a b-forwardFromChat = field @"forwardFromChat"--forwardFromMessageId :: HasField "forwardFromMessageId" s t a b => Lens s t a b-forwardFromMessageId = field @"forwardFromMessageId"--forwardSignature :: HasField "forwardSignature" s t a b => Lens s t a b-forwardSignature = field @"forwardSignature"--forwardSenderName :: HasField "forwardSenderName" s t a b => Lens s t a b-forwardSenderName = field @"forwardSenderName"--forwardDate :: HasField "forwardDate" s t a b => Lens s t a b-forwardDate = field @"forwardDate"--replyToMessage :: HasField "replyToMessage" s t a b => Lens s t a b-replyToMessage = field @"replyToMessage"--editDate :: HasField "editDate" s t a b => Lens s t a b-editDate = field @"editDate"--mediaGroupId :: HasField "mediaGroupId" s t a b => Lens s t a b-mediaGroupId = field @"mediaGroupId"--authorSignature :: HasField "authorSignature" s t a b => Lens s t a b-authorSignature = field @"authorSignature"--replyMarkup :: HasField "replyMarkup" s t a b => Lens s t a b-replyMarkup = field @"replyMarkup"--text :: HasField "text" s t a b => Lens s t a b-text = field @"text"--entities :: HasField "entities" s t a b => Lens s t a b-entities = field @"entities"--audio :: HasField "audio" s t a b => Lens s t a b-audio = field @"audio"--document :: HasField "document" s t a b => Lens s t a b-document = field @"document"--animation :: HasField "animation" s t a b => Lens s t a b-animation = field @"animation"--game :: HasField "game" s t a b => Lens s t a b-game = field @"game"--photo :: HasField "photo" s t a b => Lens s t a b-photo = field @"photo"--sticker :: HasField "sticker" s t a b => Lens s t a b-sticker = field @"sticker"--video :: HasField "video" s t a b => Lens s t a b-video = field @"video"--voice :: HasField "voice" s t a b => Lens s t a b-voice = field @"voice"--videoNote :: HasField "videoNote" s t a b => Lens s t a b-videoNote = field @"videoNote"--contact :: HasField "contact" s t a b => Lens s t a b-contact = field @"contact"--location :: HasField "location" s t a b => Lens s t a b-location = field @"location"--venue :: HasField "venue" s t a b => Lens s t a b-venue = field @"venue"--poll :: HasField "poll" s t a b => Lens s t a b-poll = field @"poll"--newChatMembers :: HasField "newChatMembers" s t a b => Lens s t a b-newChatMembers = field @"newChatMembers"--leftChatMember :: HasField "leftChatMember" s t a b => Lens s t a b-leftChatMember = field @"leftChatMember"--newChatPhoto :: HasField "newChatPhoto" s t a b => Lens s t a b-newChatPhoto = field @"newChatPhoto"--deleteChatPhoto :: HasField "deleteChatPhoto" s t a b => Lens s t a b-deleteChatPhoto = field @"deleteChatPhoto"--groupChatCreated :: HasField "groupChatCreated" s t a b => Lens s t a b-groupChatCreated = field @"groupChatCreated"--supergroupChatCreated :: HasField "supergroupChatCreated" s t a b => Lens s t a b-supergroupChatCreated = field @"supergroupChatCreated"--channelChatCreated :: HasField "channelChatCreated" s t a b => Lens s t a b-channelChatCreated = field @"channelChatCreated"--migrateToChatId :: HasField "migrateToChatId" s t a b => Lens s t a b-migrateToChatId = field @"migrateToChatId"--migrateFromChatId :: HasField "migrateFromChatId" s t a b => Lens s t a b-migrateFromChatId = field @"migrateFromChatId"--pinnedMessage :: HasField "pinnedMessage" s t a b => Lens s t a b-pinnedMessage = field @"pinnedMessage"--invoice :: HasField "invoice" s t a b => Lens s t a b-invoice = field @"invoice"--successfulPayment :: HasField "successfulPayment" s t a b => Lens s t a b-successfulPayment = field @"successfulPayment"--connectedWebsite :: HasField "connectedWebsite" s t a b => Lens s t a b-connectedWebsite = field @"connectedWebsite"--passPortData :: HasField "passPortData" s t a b => Lens s t a b-passPortData = field @"passPortData"--caption :: HasField "caption" s t a b => Lens s t a b-caption = field @"caption"--captionEntities :: HasField "captionEntities" s t a b => Lens s t a b-captionEntities = field @"captionEntities"--chatId :: HasField "chatId" s t a b => Lens s t a b-chatId = field @"chatId"--chatType :: HasField "chatType" s t a b => Lens s t a b-chatType = field @"chatType"--title :: HasField "title" s t a b => Lens s t a b-title = field @"title"--username :: HasField "username" s t a b => Lens s t a b-username = field @"username"--description :: HasField "description" s t a b => Lens s t a b-description = field @"description"--inviteLink :: HasField "inviteLink" s t a b => Lens s t a b-inviteLink = field @"inviteLink"--permissions :: HasField "permissions" s t a b => Lens s t a b-permissions = field @"permissions"--slowModeDelay :: HasField "slowModeDelay" s t a b => Lens s t a b-slowModeDelay = field @"slowModeDelay"--stickerSetName :: HasField "stickerSetName" s t a b => Lens s t a b-stickerSetName = field @"stickerSetName"--canSetStickerSet :: HasField "canSetStickerSet" s t a b => Lens s t a b-canSetStickerSet = field @"canSetStickerSet"--canSendMessages :: HasField "canSendMessages" s t a b => Lens s t a b-canSendMessages = field @"canSendMessages"--canSendMediaMessages :: HasField "canSendMediaMessages" s t a b => Lens s t a b-canSendMediaMessages = field @"canSendMediaMessages"--canSendPolls :: HasField "canSendPolls" s t a b => Lens s t a b-canSendPolls = field @"canSendPolls"--canSendOtherMesssages :: HasField "canSendOtherMesssages" s t a b => Lens s t a b-canSendOtherMesssages = field @"canSendOtherMesssages"--canAddWebPagePreviews :: HasField "canAddWebPagePreviews" s t a b => Lens s t a b-canAddWebPagePreviews = field @"canAddWebPagePreviews"--canChangeInfo :: HasField "canChangeInfo" s t a b => Lens s t a b-canChangeInfo = field @"canChangeInfo"--canInviteUsers :: HasField "canInviteUsers" s t a b => Lens s t a b-canInviteUsers = field @"canInviteUsers"--canPinMessages :: HasField "canPinMessages" s t a b => Lens s t a b-canPinMessages = field @"canPinMessages"--smallFileId :: HasField "smallFileId" s t a b => Lens s t a b-smallFileId = field @"smallFileId"--smallFileUniqueId :: HasField "smallFileUniqueId" s t a b => Lens s t a b-smallFileUniqueId = field @"smallFileUniqueId"--bigFileId :: HasField "bigFileId" s t a b => Lens s t a b-bigFileId = field @"bigFileId"--bitFileUniqueId :: HasField "bitFileUniqueId" s t a b => Lens s t a b-bitFileUniqueId = field @"bitFileUniqueId"--user :: HasField "user" s t a b => Lens s t a b-user = field @"user"--status :: HasField "status" s t a b => Lens s t a b-status = field @"status"--customTitle :: HasField "customTitle" s t a b => Lens s t a b-customTitle = field @"customTitle"--untilDate :: HasField "untilDate" s t a b => Lens s t a b-untilDate = field @"untilDate"--canBeEdited :: HasField "canBeEdited" s t a b => Lens s t a b-canBeEdited = field @"canBeEdited"--canPostMessages :: HasField "canPostMessages" s t a b => Lens s t a b-canPostMessages = field @"canPostMessages"--canEditMessages :: HasField "canEditMessages" s t a b => Lens s t a b-canEditMessages = field @"canEditMessages"--canDeleteMessages :: HasField "canDeleteMessages" s t a b => Lens s t a b-canDeleteMessages = field @"canDeleteMessages"--canRestrictMembers :: HasField "canRestrictMembers" s t a b => Lens s t a b-canRestrictMembers = field @"canRestrictMembers"--canPromoteMembers :: HasField "canPromoteMembers" s t a b => Lens s t a b-canPromoteMembers = field @"canPromoteMembers"--isMember :: HasField "isMember" s t a b => Lens s t a b-isMember = field @"isMember"--fileId :: HasField "fileId" s t a b => Lens s t a b-fileId = field @"fileId"--fileUniqueId :: HasField "fileUniqueId" s t a b => Lens s t a b-fileUniqueId = field @"fileUniqueId"--fileSize :: HasField "fileSize" s t a b => Lens s t a b-fileSize = field @"fileSize"--width :: HasField "width" s t a b => Lens s t a b-width = field @"width"--height :: HasField "height" s t a b => Lens s t a b-height = field @"height"--duration :: HasField "duration" s t a b => Lens s t a b-duration = field @"duration"--performer :: HasField "performer" s t a b => Lens s t a b-performer = field @"performer"--mimeType :: HasField "mimeType" s t a b => Lens s t a b-mimeType = field @"mimeType"--thumb :: HasField "thumb" s t a b => Lens s t a b-thumb = field @"thumb"--phoneNumber :: HasField "phoneNumber" s t a b => Lens s t a b-phoneNumber = field @"phoneNumber"--vcard :: HasField "vcard" s t a b => Lens s t a b-vcard = field @"vcard"--longitude :: HasField "longitude" s t a b => Lens s t a b-longitude = field @"longitude"--latitude :: HasField "latitude" s t a b => Lens s t a b-latitude = field @"latitude"--address :: HasField "address" s t a b => Lens s t a b-address = field @"address"--foursquareId :: HasField "foursquareId" s t a b => Lens s t a b-foursquareId = field @"foursquareId"--foursquareType :: HasField "foursquareType" s t a b => Lens s t a b-foursquareType = field @"foursquareType"--voterCount :: HasField "voterCount" s t a b => Lens s t a b-voterCount = field @"voterCount"--pollId :: HasField "pollId" s t a b => Lens s t a b-pollId = field @"pollId"--question :: HasField "question" s t a b => Lens s t a b-question = field @"question"--options :: HasField "options" s t a b => Lens s t a b-options = field @"options"--totalVoterCount :: HasField "totalVoterCount" s t a b => Lens s t a b-totalVoterCount = field @"totalVoterCount"--isClosed :: HasField "isClosed" s t a b => Lens s t a b-isClosed = field @"isClosed"--isAnonymous :: HasField "isAnonymous" s t a b => Lens s t a b-isAnonymous = field @"isAnonymous"--pollType :: HasField "pollType" s t a b => Lens s t a b-pollType = field @"pollType"--allowsMultipleAnswers :: HasField "allowsMultipleAnswers" s t a b => Lens s t a b-allowsMultipleAnswers = field @"allowsMultipleAnswers"--correctOptionId :: HasField "correctOptionId" s t a b => Lens s t a b-correctOptionId = field @"correctOptionId"--optionIds :: HasField "optionIds" s t a b => Lens s t a b-optionIds = field @"optionIds"--totalCount :: HasField "totalCount" s t a b => Lens s t a b-totalCount = field @"totalCount"--photos :: HasField "photos" s t a b => Lens s t a b-photos = field @"photos"--filePath :: HasField "filePath" s t a b => Lens s t a b-filePath = field @"filePath"--isAnimated :: HasField "isAnimated" s t a b => Lens s t a b-isAnimated = field @"isAnimated"--emoji :: HasField "emoji" s t a b => Lens s t a b-emoji = field @"emoji"--setName :: HasField "setName" s t a b => Lens s t a b-setName = field @"setName"--maskPosition :: HasField "maskPosition" s t a b => Lens s t a b-maskPosition = field @"maskPosition"--containsMasks :: HasField "containsMasks" s t a b => Lens s t a b-containsMasks = field @"containsMasks"--stickers :: HasField "stickers" s t a b => Lens s t a b-stickers = field @"stickers"--name :: HasField "name" s t a b => Lens s t a b-name = field @"name"--point :: HasField "point" s t a b => Lens s t a b-point = field @"point"--xShift :: HasField "xShift" s t a b => Lens s t a b-xShift = field @"xShift"--yShift :: HasField "yShift" s t a b => Lens s t a b-yShift = field @"yShift"--scale :: HasField "scale" s t a b => Lens s t a b-scale = field @"scale"--retryAfter :: HasField "retryAfter" s t a b => Lens s t a b-retryAfter = field @"retryAfter"--command :: HasField "command" s t a b => Lens s t a b-command = field @"command"-
telegram-types.cabal view
@@ -4,10 +4,10 @@ -- -- see: https://github.com/sol/hpack ----- hash: 1ce7c0f493d00addea341e93ceca1fa8a7969c97530ec77dfbe79d03bc90e100+-- hash: 8af209cc5d14ad01da13e8a8154044f721fe6a9791344c5d90673220e658ceaa  name:           telegram-types-version:        0.3.1+version:        0.4.0 synopsis:       Types used in Telegram bot API description:    Defines various datatypes and their serialization methods useful for writing bindings to Telegram bot API. category:       Web@@ -29,7 +29,6 @@ library   exposed-modules:       Web.Telegram.Types-      Web.Telegram.Types.Lens       Web.Telegram.Types.Stock       Web.Telegram.Types.Interaction       Web.Telegram.Types.Passport@@ -61,14 +60,14 @@     , bytestring >=0.10.10.0 && <0.11     , deriving-aeson >=0.2.3 && <0.3     , filepath >=1.4.2.1 && <1.5-    , generic-lens >=1.2.0.1 && <1.3-    , hashable >=1.3.0.0 && <1.4+    , generic-lens >=1.2.0.1 && <2.1     , lens >=4.18.1 && <4.19     , mime-types >=0.1.0.9 && <0.2     , open-union >=0.4.0.0 && <0.5     , servant >=0.16.2 && <0.17     , servant-multipart >=0.11.5 && <0.12     , text >=1.2.4.0 && <1.3+    , time >=1.9.3 && <1.11   default-language: Haskell2010  test-suite telegram-types-test@@ -85,8 +84,7 @@     , bytestring >=0.10.10.0 && <0.11     , deriving-aeson >=0.2.3 && <0.3     , filepath >=1.4.2.1 && <1.5-    , generic-lens >=1.2.0.1 && <1.3-    , hashable >=1.3.0.0 && <1.4+    , generic-lens >=1.2.0.1 && <2.1     , lens >=4.18.1 && <4.19     , mime-types >=0.1.0.9 && <0.2     , open-union >=0.4.0.0 && <0.5@@ -94,4 +92,5 @@     , servant-multipart >=0.11.5 && <0.12     , telegram-types     , text >=1.2.4.0 && <1.3+    , time >=1.9.3 && <1.11   default-language: Haskell2010