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.