Comments (4)
@fizruk Unfortunatelly there is an optional title in the other constructors, so it's done this way as common denominator
from haskell-telegram-api.
@fizruk But if you can suggest better option, I would be happy to implement it
from haskell-telegram-api.
@klappvisor I'm currently experimenting with Telegram Bot API using this library. This was the first thing I noticed. However it is a very minor thing.
Recently I noticed that Telegram Bot API simulates sum types:
At most one of the optional parameters can be present in any given update.
This object represents one button of an inline keyboard. You must use exactly one of the optional fields.
Exactly one of the fields data or game_short_name will be present.
telegram-api
currently copies data type design and does not leverage sum types for these objects.
And it makes handling updates somewhat painful (without pattern synonyms or lenses) and also allows for invalid data to be constructed (which could be avoided easily with sum types).
In any case, I'm still trying things out and I may have more concrete suggestions later :)
from haskell-telegram-api.
@fizruk Thank you for your feedback! It's actually very relevant, you are right, but it would require major breaking change. I guess it's better to do it anyway, hopefully together with the others I could find, to avoid constantly breaking API.
As user, what do you think about current order of the arguments in runClient
?
Currently:
runClient queries token manager
Or
runClient token manager queries
That will make it possible to write
runClient toekn manager $ do
me<- getMeM
webhook <- getWebhookInfoM
Any other suggestions are welcome
from haskell-telegram-api.
Related Issues (20)
- Support for Bot API 3.1 update
- Bot API 3.2 support
- Bot API 3.3 support
- Bot API 3.4 support
- Bot 3.5 support
- Building as dependency with Stack runs out of memory HOT 5
- Depricate direct IO
- Migrate to Servant 0.12 HOT 1
- Failed to build against GHC-8.2 HOT 1
- Automatically add "bot"-prefix to tokens in URLs HOT 1
- Not capturing mentions on users who has username
- Fails to build with lts-14.0 - error in MultipartFormData HOT 3
- How can i use that? HOT 3
- editMessageMedia
- game_chat_id :: Integer HOT 4
- عبود
- عبود HOT 2
- [QUESTION] Is this project still active? HOT 2
- Too strict version bounds on aeson
- GHC 8.10 and 9.0 support
Recommend Projects
-
React
A declarative, efficient, and flexible JavaScript library for building user interfaces.
-
Vue.js
🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
-
Typescript
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
-
TensorFlow
An Open Source Machine Learning Framework for Everyone
-
Django
The Web framework for perfectionists with deadlines.
-
Laravel
A PHP framework for web artisans
-
D3
Bring data to life with SVG, Canvas and HTML. 📊📈🎉
-
Recommend Topics
-
javascript
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
-
web
Some thing interesting about web. New door for the world.
-
server
A server is a program made to process requests and deliver data to clients.
-
Machine learning
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
-
Visualization
Some thing interesting about visualization, use data art
-
Game
Some thing interesting about game, make everyone happy.
Recommend Org
-
Facebook
We are working to build community through open source technology. NB: members must have two-factor auth.
-
Microsoft
Open source projects and samples from Microsoft.
-
Google
Google ❤️ Open Source for everyone.
-
Alibaba
Alibaba Open Source for everyone
-
D3
Data-Driven Documents codes.
-
Tencent
China tencent open source team.
from haskell-telegram-api.