diff --git a/CHANGELOG.md b/CHANGELOG.md
--- a/CHANGELOG.md
+++ b/CHANGELOG.md
@@ -1,5 +1,10 @@
 # Changelog
 
+## 0.1.1
+
+### [Changed]
+- [#2] [#3] Ignore all identifiers that have a zero-width span. These are the result of generated code, and should be rejected elsewhere, but apparently can occasionally creep through.
+
 ## 0.1.0
 
 ### [Added]
diff --git a/README.md b/README.md
--- a/README.md
+++ b/README.md
@@ -9,7 +9,7 @@
 It works directly on GHC-generated HIE files, giving us features that would otherwise be tricky, like type information and support for generated files.
 `calligraphy` has been tested with all versions of GHC that can produce HIE files (i.e. GHC 8.8, 8.10, 9.0, and 9.2.)
 
-See [the accompanying blog post](https://jonascarpay.com/posts/2022-04-01-salt.html) for more examples, and an extended tutorial.
+See [the accompanying blog post](https://jonascarpay.com/posts/2022-04-26-calligraphy-tutorial.html) for more examples, and an extended tutorial.
 
 ## Usage
 
@@ -19,7 +19,7 @@
 2. Install [GraphViz](https://graphviz.org/). By default, `calligraphy` needs `dot` to be available in the search path.
 
 3. Generate HIE files for your project by passing the `-fwrite-ide-info` to GHC.
-If you're using Cabal, for example, you'd invoke `cabal new-build --ghc-options=-fwrite-ide-info`
+If you're using Cabal, for example, you'd invoke `cabal build --ghc-options=-fwrite-ide-info`
 
 4. Run `calligraphy`.
 You probably want to start by running `calligraphy --help` to see what options it supports, but as an example, the above graph was produced using the following command:
diff --git a/calligraphy.cabal b/calligraphy.cabal
--- a/calligraphy.cabal
+++ b/calligraphy.cabal
@@ -1,6 +1,6 @@
 cabal-version:   2.4
 name:            calligraphy
-version:         0.1.0
+version:         0.1.1
 license:         BSD-3-Clause
 build-type:      Simple
 license-file:    LICENSE
diff --git a/src/Calligraphy/Compat/Lib.hs b/src/Calligraphy/Compat/Lib.hs
--- a/src/Calligraphy/Compat/Lib.hs
+++ b/src/Calligraphy/Compat/Lib.hs
@@ -13,6 +13,7 @@
     isDerivingNode,
     showAnns,
     spanSpans,
+    isPointSpan,
   )
 where
 
@@ -109,3 +110,6 @@
         (realSrcSpanEnd sp1)
         (realSrcSpanEnd sp2)
     )
+
+isPointSpan :: Span -> Bool
+isPointSpan sp = realSrcSpanEnd sp <= realSrcSpanStart sp
diff --git a/src/Calligraphy/Phases/Parse.hs b/src/Calligraphy/Phases/Parse.hs
--- a/src/Calligraphy/Phases/Parse.hs
+++ b/src/Calligraphy/Phases/Parse.hs
@@ -13,6 +13,7 @@
 
 import qualified Calligraphy.Compat.GHC as GHC
 import Calligraphy.Compat.Lib (isDerivingNode, isInlineNode, isInstanceNode, isMinimalNode, isTypeSignatureNode, sourceInfo, spanSpans)
+import qualified Calligraphy.Compat.Lib as GHC
 import Calligraphy.Util.LexTree (LexTree, TreeError (..), foldLexTree)
 import qualified Calligraphy.Util.LexTree as LT
 import Calligraphy.Util.Printer
@@ -228,11 +229,13 @@
             forM_ (M.toList $ GHC.nodeIdentifiers nodeInfo) $ \case
               (Right name, GHC.IdentifierDetails ty info)
                 | not (isGenerated name) -> do
-                  mapM_ (tellType name) ty
-                  case classifyIdentifier info of
-                    IdnIgnore -> pure ()
-                    IdnUse -> tellUse (GHC.realSrcSpanStart $ GHC.nodeSpan node) (ghcNameKey name)
-                    IdnDecl typ sp -> tellDecl (typ, sp, name, spanToLoc sp)
+                    mapM_ (tellType name) ty
+                    case classifyIdentifier info of
+                      IdnIgnore -> pure ()
+                      IdnUse -> tellUse (GHC.realSrcSpanStart $ GHC.nodeSpan node) (ghcNameKey name)
+                      IdnDecl typ sp
+                        | GHC.isPointSpan sp -> pure ()
+                        | otherwise -> tellDecl (typ, sp, name, spanToLoc sp)
               _ -> pure ()
             mapM_ collect' children
 
diff --git a/src/Calligraphy/Phases/Render.hs b/src/Calligraphy/Phases/Render.hs
--- a/src/Calligraphy/Phases/Render.hs
+++ b/src/Calligraphy/Phases/Render.hs
@@ -80,7 +80,7 @@
 
     renderTreeNode :: Prints (Tree Decl)
     renderTreeNode (Node decl@(Decl _ key _ exported typ _) children) = do
-      strLn $ show (unKey key) <> " " <> style ["label" .= show (nodeLabel decl), "shape" .= nodeShape typ, "style" .= nodeStyle]
+      strLn $ show (unKey key) <> " " <> style ["label" .= ("\"" <> nodeLabel decl <> "\""), "shape" .= nodeShape typ, "style" .= nodeStyle]
       forM_ children $ \child@(Node childDecl _) -> do
         renderTreeNode child
         edge key (declKey childDecl)
diff --git a/test/Test/Reference.hs b/test/Test/Reference.hs
--- a/test/Test/Reference.hs
+++ b/test/Test/Reference.hs
@@ -1,4 +1,5 @@
 {-# LANGUAGE DefaultSignatures #-}
+{-# LANGUAGE DeriveGeneric #-}
 {-# LANGUAGE GADTs #-}
 {-# LANGUAGE PatternSynonyms #-}
 {-# LANGUAGE StandaloneDeriving #-}
@@ -17,11 +18,13 @@
 import Data.Functor.Identity
 import Data.Kind (Type)
 import qualified Data.Map as M
+import GHC.Generics (Generic)
 
 data ExportedT
   = Exported (Identity Int)
   | NotExported (M.Map Int Int)
   | Single
+  deriving (Generic)
 
 deriving instance Eq ExportedT
 
