diff --git a/graph-trace-dot.cabal b/graph-trace-dot.cabal
--- a/graph-trace-dot.cabal
+++ b/graph-trace-dot.cabal
@@ -1,6 +1,6 @@
 cabal-version:      2.4
 name:               graph-trace-dot
-version:            0.1.1.1
+version:            0.1.1.2
 
 -- A short (one-line) description of the package.
 synopsis:
@@ -26,7 +26,7 @@
 copyright:     Copyright (C) 2022 Aaron Allen
 category: tooling, debug, development, graph, plugin
 extra-source-files: CHANGELOG.md
-tested-with: GHC==9.2.1, GHC==9.0.1, GHC==8.10.7
+tested-with: GHC==9.2.1, GHC==9.0.1, GHC==9.0.2, GHC==8.10.7
 
 library
   default-language: Haskell2010
@@ -35,7 +35,7 @@
                , bytestring
                , containers
                , directory
-               , attoparsec
+               , attoparsec >= 0.14
                , cryptohash-sha256
                , base16-bytestring
   hs-source-dirs: src
@@ -49,7 +49,7 @@
                , bytestring
                , containers
                , directory
-               , attoparsec
+               , attoparsec >= 0.13.2.2
                , graph-trace-dot
   hs-source-dirs: app
   ghc-options: -Wall
diff --git a/src/Graph/Trace/Dot.hs b/src/Graph/Trace/Dot.hs
--- a/src/Graph/Trace/Dot.hs
+++ b/src/Graph/Trace/Dot.hs
@@ -1,3 +1,4 @@
+{-# LANGUAGE CPP #-}
 {-# LANGUAGE LambdaCase #-}
 {-# LANGUAGE TupleSections #-}
 {-# LANGUAGE RecordWildCards #-}
@@ -67,8 +68,6 @@
          (Maybe SrcCodeLoc) -- ^ call site
   deriving Show
 
-type Color = BSB.Builder
-
 -- Remembers the order in which the elements were inserted. Is monoidal
 type Node key =
   ( Min Int -- order
@@ -108,7 +107,11 @@
 --------------------------------------------------------------------------------
 
 parseLogEntries :: BSL.ByteString -> Either String [LogEntry]
-parseLogEntries = AttoL.parseOnly (Atto.many' parseLogEntry <* Atto.endOfInput)
+parseLogEntries =
+  AttoL.parseOnly (AttoL.many' parseLogEntry <* AttoL.endOfInput)
+#if !MIN_VERSION_attoparsec(0,14,0)
+  . BSL.toStrict
+#endif
 
 parseKey :: Atto.Parser Key
 parseKey = do
@@ -182,13 +185,16 @@
           graph
 
       Entry curTag (Just prevTag) defSite callSite ->
-          M.insertWith (<>)
-            curTag
-            (graphSize + 1, ([], Alt defSite, Alt . Just $ Just prevTag))
-        $ M.insertWith (<>)
-            prevTag
-            (graphSize, ([Edge curTag callSite], mempty, mempty))
-            graph
+        let graph' =
+              M.insertWith (<>)
+                prevTag
+                (graphSize, ([Edge curTag callSite], mempty, mempty))
+                graph
+         in M.insertWith (<>)
+              curTag
+              (Min $ M.size graph'
+                , ([], Alt defSite, Alt . Just $ Just prevTag))
+              graph'
 
       Entry curTag Nothing defSite _ ->
         M.insertWith (<>)
@@ -386,6 +392,7 @@
 
 type Element = BSB.Builder
 type Attr = (BSB.Builder, Maybe BSB.Builder)
+type Color = BSB.Builder
 
 (.=) :: BSB.Builder -> BSB.Builder -> Attr
 name .= val = name .=? Just val
