generic finger-tree structure (http://staff.city.ac.uk/~ross/papers/FingerTree.html)

#7Export the types Digit and Node from Data.FingerTree

This is related to issue #6. It turns out I cannot declare NFData instances using Generic for IntervalMap, because that depends on FingerTree (which is exported), and that depends on Digit and Node (which are not exported). I need to declare NFData instances for FingerTree, Digit and Node too, but I cannot for the latter two since the types are not exported. Would it be possible to export the types Digit and Node but not their constructors? Thank you very much.

  • From a library design standpoint, this is a bad idea. Either export the types (with their constructors) from an Internal module, or export neither. There's very little to be gained by exporting just the types.

  • I'd suggest exporting all the internals in Data.FingerTree.Internal.

    I'm suffering from lacking the ability to implement functions like alter or custom traversals that touch a fraction of the data (e.g. the points where the measure changes), and other custom stuff.