@hecate I tried to generalise a data structure (make its member types parameterisable) and ended up enabling quite a lot of language extensions.
I've merged this so far due to time restrictions, but if you're interested I'd be grateful for feedback on my type design, see https://git.orlives.de/schmittlauch/Hash2Pub/pulls/63/files
@hecate Fortunately, the part I refactored is covered by tests.
All the network IO will only get tests after my deadline, as I am really short on time right now.
@hecate So after the deadline, project progress is likely stalling for severla months while I'm cleaning up all the technical debt, hundreds of warnings and missing tests /0\
@hecate Definitely, though I'm not fully sure wheter it makes sense to start on it right now.
Configurability using TOML would be neat though. There are many TODOs in the code of values needing to be moved to FediChordConf and read from there. And FediChordConf should better be created from a TOML file instead of command line arguments.
@hecate scavenging all the missing configuration inputs could indeed be a good way of getting familiar with the code.
So feel free to start any time, this probably won't get in my way too much.
@hecate What annoys me the most is the need for `FlexibleContexts` and additional type hints in DHTProtocol.hs https://git.orlives.de/schmittlauch/Hash2Pub/commit/0d1551261b949e42d64297aa9462b93e334cd662
Also it might be possible to completely revamp the class and instance hierarchy, by making all these functions class functions and parameterising the instances only instead of the class/ newtype itself.
The social network of the future: No ads, no corporate surveillance, ethical design, and decentralization! Own your data with Mastodon!