
18 Nov
2013
18 Nov
'13
11:21 a.m.
On 18/11/13 15:37, Sean Leather wrote:
Examples include debugging (yours), implementing functions not included in the library (e.g. this comes up sometimes with Data.Map/Data.Set), and optimization.
...
In the case of DList, the underlying type is so simple that exposing it does not add enough value to warrant a second module.
These two points you give seem very contradicting.
From my experience, whatever it is, in the end somebody wants to give an instance to it.
I would therefore vote to expose internals of *all* data types exposed. Not doing so is assuming the ability to foretell everything a user will ever do with it, which is never true.