We have accumulated a non-trivial set of utility and helper functions in Ouroboros.Consensus.Util and Test.Util.Split.
Several, especially list-based functions are only used in tests. They should probably not be implemented in Ouroboros.Consensus.Util in order to not make lists overly appealing as a data structure in our actual code. This is part of clearly distinguishing between the Ouroboros.Consensus.Util.* and Test.Util.* modules.
We should remove unused functions (e.g. via weeder), and ensure that the ones we actually use are (property) tested or replaced by using a published library if appropriate.
We have accumulated a non-trivial set of utility and helper functions in
Ouroboros.Consensus.Util
andTest.Util.Split
.Ouroboros.Consensus.Util
in order to not make lists overly appealing as a data structure in our actual code. This is part of clearly distinguishing between theOuroboros.Consensus.Util.*
andTest.Util.*
modules.weeder
), and ensure that the ones we actually use are (property) tested or replaced by using a published library if appropriate.Motivation for this ticket: https://github.com/input-output-hk/ouroboros-network/pull/3860#discussion_r1011909460