diff --git a/Help/hsc3-dot.help.lhs b/Help/hsc3-dot.help.lhs
--- a/Help/hsc3-dot.help.lhs
+++ b/Help/hsc3-dot.help.lhs
@@ -30,5 +30,7 @@
 
 With multiple root graph.
 
-> let f = mce2 440 220
-> in draw (mrg [out 0 (sinOsc AR f 0 * 0.1), out 0 (sinOsc KR 1 0)])
+> let { f = mce2 440 220 + in' 2 KR 0
+>     ; o1 = sinOsc AR f 0 * 0.1
+>     ; o2 = sinOsc KR (mce2 0.25 0.35) 0 * mce2 10 15 }
+> in draw (mrg [out 0 o1, out 0 o2])
diff --git a/README b/README
--- a/README
+++ b/README
@@ -1,12 +1,13 @@
 hsc3-dot - haskell supercollider dot
 
 hsc3-dot provides dot graph drawing for SuperCollider unit generator
-graphs.
+graphs.  The graph rendering is delegated to graphviz, which must be
+installed.
 
   http://slavepianos.org/rd/
   http://haskell.org/
   http://audiosynth.com/
-  http://graphviz.org
+  http://graphviz.org/
 
-(c) rohan drape, 2006-2008
+(c) rohan drape, 2006-2009
     gpl, http://gnu.org/copyleft/
diff --git a/Sound/SC3/UGen/Dot.hs b/Sound/SC3/UGen/Dot.hs
--- a/Sound/SC3/UGen/Dot.hs
+++ b/Sound/SC3/UGen/Dot.hs
@@ -13,7 +13,8 @@
 import System.Environment
 import System.FilePath
 
--- | Generate the dot representation of the provided unit generator graph.
+-- | Generate the dot representation of the provided unit generator
+--   graph.
 dot :: UGen -> String
 dot r = 
     let g = synth r
@@ -42,17 +43,18 @@
     fromJust (find (\x -> node_id x == n) (cs ++ ks ++ us))
 
 edges :: [Node] -> Edges
-edges = concatMap f
-    where f (NodeU x _ _ i _ _ _) = zip i (map (\n -> ToPort x n) [0..])
-          f _ = error "edges"
+edges =
+    let f (NodeU x _ _ i _ _ _) = zip i (map (\n -> ToPort x n) [0..])
+        f _ = error "edges"
+    in concatMap f
 
 record :: String -> String -> [[String]] -> String
 record lbl clr slt = concat [ lbl
                             , " [shape=\"record\", "
                             , "color=\"", clr, "\", "
-                            , "label=\"{", concat (g (map f slt)), "}\"];" ]
-    where f l = concat ["{", concat (g l), "}"]
-          g l = (intersperse "|" l)
+                            , "label=\"{", g (map f slt), "}\"];" ]
+    where f l = concat ["{", g l, "}"]
+          g = concat . intersperse "|"
 
 label :: Node -> String
 label (NodeC n _) = "N_" ++ show n
@@ -143,6 +145,7 @@
        system $ v ++ " " ++ f
        return ()
 
--- Read the environment variable @DOTVIEWER@, the default value is @"dotty"@.
+-- Read the environment variable @DOTVIEWER@, the default value is
+-- @"dotty"@.
 get_dot_viewer :: IO String
 get_dot_viewer = catch (getEnv "DOTVIEWER") (\_ -> return "dotty")
diff --git a/hsc3-dot.cabal b/hsc3-dot.cabal
--- a/hsc3-dot.cabal
+++ b/hsc3-dot.cabal
@@ -1,24 +1,27 @@
 Name:              hsc3-dot
-Version:           0.6
+Version:           0.7
 Synopsis:          haskell supercollider graph drawing
-Description:       dot format (see <http://graphviz.org>) graph generator
-                   for SuperCollider (see <http://audiosynth.com>) unit
-                   generator graphs constructed using hsc3.
+Description:       dot format graph generator for SuperCollider 
+                   unit generator graphs constructed using hsc3.
 License:           GPL
 Category:          Sound
-Copyright:         (c) Rohan Drape, 2006-2008
+Copyright:         (c) Rohan Drape, 2006-2009
 Author:            Rohan Drape
 Maintainer:        rd@slavepianos.org
 Stability:         Experimental
 Homepage:          http://slavepianos.org/rd/f/890257/
-Tested-With:       GHC==6.10.1
+Tested-With:       GHC == 6.8.2
 Build-Type:        Simple
-Cabal-Version:     >= 1.2
+Cabal-Version:     >= 1.6
 
 Data-files:        README
                    Help/hsc3-dot.help.lhs
 
 Library
-  Build-Depends:   base, directory, filepath, hsc3 == 0.6, process
+  Build-Depends:   base == 3.*,
+                   directory,
+                   filepath,
+                   hsc3 == 0.7,
+                   process
   GHC-Options:     -Wall -fwarn-tabs
   Exposed-modules: Sound.SC3.UGen.Dot
