The flow2dot package

[Tags:bsd3, library, program]

Generates sequence diagrams from textual descriptions with help of Graphviz graph drawing tool. Check out (source) and (output).

[Skip to Readme]


Versions 0.2, 0.2.1, 0.3, 0.3.1, 0.4, 0.5, 0.5.1, 0.6, 0.6.1, 0.7, 0.8, 0.9,,,
Change log ChangeLog
Dependencies base (>=3 && <=5), containers, haskell98, mtl (>=1.0), parsec, QuickCheck, utf8-string [details]
License BSD3
Author Dmitry Astapov <>
Maintainer Dmitry Astapov <>
Category Tool
Home page
Source repository head: darcs get
Uploaded Fri Jun 29 23:17:55 UTC 2012 by DmitryAstapov
Distributions NixOS:
Downloads 3171 total (7 in the last 30 days)
0 []
Status Docs uploaded by user
Build status unknown [no reports yet]




Maintainer's Corner

For package maintainers and hackage trustees

Readme for flow2dot

Readme for flow2dot-

This is a tool to generate nice sequence (flow) diagrams from
textual descriptions, written in Haskell.

This tool generates a diagram _description_, which could be made into
a nice picture with help of Graphviz (

To try it out, run:
  runhaskell flow2dot.hs sample.flow | dot -T png -o sample.png
and view "sample.png" with your favorite picture viewer. If you
dont get a nice picture and get something else (for example, ugly
segfault from dot), try upgrading to latest Graphviz (2.12 or later)

If you want to use national alphabets, make sure that your .flow files
are encoded in UTF-8. If you want to tweak the output - read Dot manual
and use it for scaling, colors, pagination etc.

Latest version could be obtained via:
  darcs pull

License     :  BSD-style (see the file LICENSE)
Send patches to (using "darcs send")

Thanks to Cale, quicksilver and roconnor from #haskell for
suggestions on how to modularize this. Thanks to Dema from for win32 testing. Gwern0 helped
to adapt this to GHC 6.8.2. Radoslav Dorcik sent in parser improvements.
Mike Shigorin and Denis Smirnov packaged for Alt Linux and provided feedback
on compatibility with different GHC versions. Vasyl Vaskul reported bugs.

Known issues

* Dot < 2.12 will most likely segfault on files generated by flow2dot

* If your version of dot complains about "Error: lost n1 n2 edge", try using
flow2dot-fix-dot-lost-edges in place of dot:

   runhaskell flow2dot your.flow | flow2dot-fix-dot-lost-edges -T png -o your.png

Trick is to remove 'constraint="false"' from all edges that dot reports as lost.