
4 May
2017
4 May
'17
7:47 a.m.
It seems that Traversable is doing two things: 1) Changing the shape of a data structure. 2) Folding over the contents of a data structure. Traversable requires Foldable to enable 2, but Traversable is also applied to types such as (,) where only 1 is relevant. If this is correct, follow-up questions would be: 1) For educational purposes, could these concerns be split without substantial drawback? 2) For practical purposes, could this be done without breaking a lot of existing code?