Viability of having a new top-level "Graph" module namespace
wren ng thornton
wren at community.haskell.org
Thu Aug 5 08:56:16 EDT 2010
Ivan Lazar Miljenovic wrote:
> As part of an attempt at resolving the FGL vs inductive-graphs naming
> mess, one solution that Edward Kmett and I thrashed out will involve
> utilising a new top-level module namespace of Graph.* instead of using
> Data.Graph.* as currently found in FGL.
> * Not all graph-related modules are necessarily strictly about
> data-types, etc. (and I can't find any distinction about what defines
> the Data.* namespace anyway); e.g. my graphviz library currently uses
> Data.GraphViz.*, though it should arguably go under Graphics.* instead
> (it's currently under Data.* because that's how I found it when I took
> over maintainership).
For me, this is the most salient issue (though module clashes are
certainly a pragmatic concern). The Data.* namespace seems to have
become the default these days, and it seems like many of the things in
there aren't data structures--- that is, they aren't data structures
first and foremost. Instead, they are often auxiliary structures for
supporting some specific algorithm or UI toolkit. Everybody uses data
structures, but that doesn't mean everyone's code should end up in Data.*.
Graphs are a salient object of study in their own right, above and
beyond their status as data structures. They also blur a number of
distinctions such as data vs GUI, structures vs algorithms, etc. Thus, I
support the new fgl library putting things in Graph.Inductive.*.
More information about the Libraries