Re: Proposal: export more Data.Sequence internals
Simon Jakobi via Libraries <[email protected]>
| Newsgroups | gmane.comp.lang.haskell.libraries |
|---|---|
| Message-ID | <CAGtp2Sh5n_QPw+nbcsfmJ3PT07vzfGkAKs197vctmtk2JVGQoA@mail.gmail.com> |
Hi David, and apologies for the late response! I don't have much to add to this discussion since I'm rather unfamiliar with the Data.Sequence internals and fingertrees in general. Since this code is pretty stable AFAIK, I don't see a problem with exposing it under the PVP. My only suggestion would be to find a slightly better name than Data.Sequence.StableInternal. Something like Data.Sequence.Core perhaps?! Cheers! Simon Am Fr., 5. Feb. 2021 um 22:22 Uhr schrieb David Feuer <[email protected]>: > > I'd like containers to export more Data.Sequence internals, and to do > so in a way that allows external users to rely on them. I propose the > following: > > 1. Add a module, Data.FingerTree.IntPlus, abstractly exporting the > finger trees used to represent sequences. These can also be used for > other finger trees with measurements in the (Int, +) monoid. This > would include various basic operations for cons, snoc, and splitting, > with most names the same as for sequences. > 2. Add a module, Data.FingerTree.IntPlus.Unsafe, exporting efficient > mapping/traversing functions that rely on specific preconditions to > maintain the internal fingertree annotation invariant. > 3. Add a module, Data.Sequence.StableInternal, exporting the internal > structure of sequences and also some internal functions that may be > useful elsewhere (I'm particularly interested in the `splitMap` > function and future variants thereof). Unlike the `.Internal` module, > this module would be subject to the package version policy, and would > therefore be more suitable for use by other packages. > > I am very open to suggestions for modifications to the module names. > One option might be to put all the FingerTree.IntPlus stuff in the > Data.Sequence.StableInternal hierarchy, if folks think it should be > buried a bit. > > David _______________________________________________ Libraries mailing list [email protected] http://mail.haskell.org/cgi-bin/mailman/listinfo/libraries