coot
coot
The block fetch client implementation in `Ouroboros.Network.BlockFetch.Client` is not based on `Ouroboros.Network.Protocols.BlockFetch.Client`. It would be nice to re-write the latter so that the former can use it.
Also consider splitting `Test.Mux` into submodules; it's a quite big module. Putting tests & architecture to run them in separate modules might be a good starting point.
[Diffusion.P2P.Interfaces](https://github.com/input-output-hk/ouroboros-network/blob/p2p-master/ouroboros-network/src/Ouroboros/Network/Diffusion/P2P.hs#L506) take two dns related entries: * `diNtnDomainResolver :: [DomainAddress] -> m (Map DomainAddress (Set ntnAddr))`, * `diDnsActions :: DNSActions resolver resolverError m`. It would be preferable to just use...
This has been referred to above, but a convention that would distinguish ”functional” code, from ”testing” code, from ”tracing” code would help the readability. E.g., with names, preceded by a...
Flag all todo items in code comments with consistent convention, e.g., ”TODO” or ”TODO:FIXME”. The convention ought to be defined in the [style guide](https://github.com/input-output-hk/ouroboros-network/blob/master/docs/StyleGuide.md).
Since there is a common subset of LANGUAGE extensions in most all the modules, put them rather into the cabal file as ghc-options or, if you’re inclined to trust cabal,...
Unrecoverable errors, such as raised by error, might fall into various categories (at least) 1. use in ’unreachable code’ / impossible to reach. 2. invariants between various functions & modules...