# 0.1.1 * Define `chat` lens for `Update` datatype * Add string ident to `Callback` datatype * Define `Notification` datatype * Define `Droppable` typeclass # 0.1.2 * Define `Member` datatype * Add new `Membership` constructor to `Update` datatype * Define `Has` typeclass to get access objects within other objects * Replace `chat` lens on `Access Update Chat` instance # 0.1.3 * Rename `Has` typeclass to `Access` and swap parameters * Rename `Member` datatype to `Moving` * Define `Access Chat Callback` instance * Define `Access From Callback` instance * Define `Access Chat Moving` instance * Define `Access Chat Message` instance * Define `Access From Message` instance # 0.1.4 * Define `Member` datatype for chat users * No implicit `Prelude` anymore (NoImplicitPrelude) * Move HTTP request function into `Internal` module * Define `Endpoint` typeclass to replace `Capacity` * Remove `Capacity` classes and theirs instances * Define `Object` type family # 0.1.5 * Remove `Internal` module, move its content to `Endpoint` * Remove `Drop` phantom datatype, replace it with `Post` * Use promoted constructors of `Capacity` instead of separated datatypes * Use `MultiParamTypeClasses` instead of `FlexibleIntances` for `Endpoint` * Use `UndecidableInstances` and `UndecidableSuperClasses` to use `Object` type family * Replace `Access` module with `Accessible` `Property` * Replace `Endpoint` module with `Persistable` `Property` # 0.1.6 * Split `Message` on `Message` and `Content` datatypes * Add `Forward` constructor to `Message` datatype * Combine `Chat` and `From` objects into `Origin` datatype * Put `Content`, `From` and `Origin` objects into `Message` submodule * Put `Button` object into `Keyboard` submodule * Put `Notification` object into `Callback` submodule * Put `Keyboard` submodule into `Message` submodule * Put `Callback`, `Message` and `Moving` modules into `Update` submodule * Rename `From` to `Sender` and move it from `Message` and `Update` submodules # 0.1.7 * Define `Identifiable` instance for `Callback` datatype * Add `Reply` constructor to `Message` datatype * Add `Attachment` constructor to `Content` datatype * Define `File` for animations, audio, documents, photos, videos or voices * Extract `Size` datatype into separated module within `Content` submodule * Define `Location` and `Info` datatypes within `Content` submodule # 0.1.8 * Add information about `Group` or `Supergroup` (id and title) into `Moving` datatype * Add `Fetch` capacity, define `Persistable Fetch` for `Sender` to get info about bot * Define `PL` newtype to avoid violating injectivity annotation of `Payload` type family * Define `Messaging` datatype to separate direct, reply and forward `Message` * Make first argument of `Payload` type family poly kinded (enable `PolyKinds`) * Define `Persistable` instance for `Directly`, `Forwarding` and `Replying` `Message` # 0.1.9 * Move `Messaging` datatype to `Persistable` module and make it over `Capacity` parameter * Define `Persistable` instances for `Info` datatype (for direct and reply messages) * Add ticks to all constructors of `Capacity` to surround them from two sides in promoted versions * Define `Persistable` instance for `Member` (for kicking and unbanning only) * Define `Powers` and `Restrictions` datatypes within created `Member` submodule # 0.2.0 * Rename `Network.Telegram.API` to `Network.API.Telegram` * Replace `PL` newtype with `Tagged` newtype from `tagged` package * Replace `Message'` with `Way` and include it to `Capacity` with `Send` constructor * Remove `user_id` field from `Contact` datatype * Define `Persistable` instances for `Location` datatype * Define `Inform` datatype and include it to `Capacity` with `Send` constructor * Put `Payload` type family into `Persistable` type class # 0.2.1 * Define `Poll` and his `Option` datatypes * Put `Size` into `File`, `Option` into `Poll`, `Location` into `Info` created submodules * Extract `Audio`,`Document`, `Video`, `Voice` from `File` datatype into modules * Remove `Animation` construction from `File` datatype * Rename `request` method to `persist` in `Persistable` type class * Distribute `Persistable` instances on objects that belong to them * Add `Polling` constructor to `Content` for `Poll` object # 0.2.2 * Define `Persistable` instances for `Poll`, `Audio`, `Document`, `Video`, `Voice` datatypes * Define `Group` datatype for representation basic groups and supergroups * Remove `Object` type family to distribute `Accessible` and `Identifiable` instances * Put `Identificator` type family into `Identifiable` type class * Rename `identifcator` to `ident`, add MINIMAL pragma to `Accessible` * Include `Group` information into `Moving` object * Method `payload` in `Persistable` type class defines hash table, not `JSON` value * Rename `Message` constructors to use old name as `Capacity` constructors * Define `Persistable` instance for `Reply`-ing messages * Temporary delete old `Persistable` instances # 0.2.3 * Define `Persistable` instance for `Send (Text :&: Keyboard)` * Move modified versions of `Capacity` and `Silently` datatypes to `Message` module * Define `Persistable` instances for `Edit` and `Delete` messages * Add `persist_` method in `Persistable` that not trying to decode JSON response * Extract file ID from `File` datatypes to use these datatypes for sending as messages * Define `Persistable` instance for dropping `Notification`s on pressing inline buttons * Remove thumb field from `Audio`, `Document`, `Video` and `Voice` datatypes * Define `Persistable` instances for `Audio`, `Document`, `Video` and `Voice` datatypes # 0.2.4 * Define `Persistable` instances for `Location` and `Live Location` datatypes * Define `Stop` `Persistable` instances for `Poll` and `Live Location` datatypes * Move `Group` module into `Moving` submodule * Define `Caption` and `URI` datatypes to distinct specialized `Text` values * Include `URI` field into `Send` `Persistable` instances for `File` objects * Define `Persistable` instance to kick, unban, restrict and promote `Member`