aeson makes it super easy to interact for JSON APIs - I'm building Zulip bindings and this is all I need to write to bind concrete endpoint:
newtype MessageHistory = MessageHistory{
mhMessageHistory :: [MessageSnapshot]
} deriving stock (Show, Generic)
deriving FromJSON via ZulipJSON Messa
There is a limitation with zulip-archive. If you rename a topic after a while, it will appear in two places in the archive. :-(
Example:
I'll re-generate the full site later today (ignoring cache), which should apply a one-off fix. And then open a bug on zulip-archive.
... and posted to reddit for free marketing :-D https://old.reddit.com/r/haskell/comments/fiaddl/record_construction_vs_optional_named_parameters/