Something I forgot to mention (yes, I forgot to mention something here as well as for the fgl announcement):
I sent out an email during the week asking people what they'd prefer in terms of semantics as a pure Haskell implementation for "dot -Tcanon". I didn't end up getting around to implementing this yet (as I wanted to get all these packages out first and I'm still reverse-engineering all the corner cases dealing with what happens to nodes in a cluster that has the same name as another cluster), but the infrastructure for doing so is all there so there may be a 2999.10.1.0 release soon with this feature. Ivan Lazar Miljenovic <[email protected]> writes: > I'm pleased to announce a new version of my graphviz [1] library that > provides bindings to the Graphviz [2] suite of tools for visualising > graphs. > > [1]: http://hackage.haskell.org/package/graphviz > [2]: http://graphviz.org/ > > Changes in this release: > > * I followed my own advice and put in bounds on the version of FGL it > used... > > * Conversion of FGL-style graphs to `DotRepr` values is now achieved > using the new `GraphvizParams` configuration type. This allows us > to define a single parameter that stores all the conversion > functions to pass around rather than having to pass around several > functions. This also allows all the non-clustered and clustered > functions to be collapsed together, whereas what used to be handled > by the primed functions is now achieved by using the > `setDirectedness` function. > > There are three default `GraphvizParams` available: > > - `defaultParams` provides some sensible defaults (no attributes > or clustering). > > - `nonClusteredParams` is an alias of `defaultParams` where the > clustering type is explicitly set to be `()` for cases where you > don't want any clustering at all (whereas `defaultParams` allows > you to set your own clustering functions). > > - `blankParams` sets all fields to be `undefined`; this is useful > for situations where you have functions that will set some > values for you and there is no sensible default you can use > (mainly for the clustering function). > > * Expansion of the `DotRepr` class: > > - More common functions are now defined as methods (`getID`, > etc.). > > - The ability to get more information about the structure of the > `DotRepr` graph, as well as where all the `DotNode`s are, etc. > > - `graphNodes` now returns `DotNode`s defined only as part of > `DotEdge`s, and will also merge duplicate `DotNode`s together. > > - `graphNodes` and `graphEdges` also return `GlobalAttributes` > that apply to them. > > * The `Point` type now only has one constructor: `Point Double > Double`. The `Int`-only constructor was present due to historical > purposes and I thought that the `Pos` value for a `DotNode` would > always be a pair of `Int`s; this turns out not to be the case (and > accounted for some bugs in older versions of my SourceGraph tool; it's > taken me this long to remember to fix this...). > > * `SortV` and `PrismOverlap` now only take `Word16` values rather than > `Int`s, as they're not meant to allow negative values (the choice of > using `Word16` rather than `Word` was arbitrary, and because it's > unlikely those values will be large enough to require the larger > values available in `Word`). > > * `NodeCluster` has been generalised to not have to take an `LNode` > for the node type; the type alias `LNodeCluster` is available if you > still want this. > > * Several documentation typos fixed, including one spotted by Kevin > Quick. > > * The test-suite now allows running individual tests. > > -- > Ivan Lazar Miljenovic > [email protected] > IvanMiljenovic.wordpress.com -- Ivan Lazar Miljenovic [email protected] IvanMiljenovic.wordpress.com _______________________________________________ Haskell mailing list [email protected] http://www.haskell.org/mailman/listinfo/haskell
