diff --git a/exon.cabal b/exon.cabal
--- a/exon.cabal
+++ b/exon.cabal
@@ -1,11 +1,11 @@
 cabal-version: 2.2
 
--- This file has been generated from package.yaml by hpack version 0.34.6.
+-- This file has been generated from package.yaml by hpack version 0.34.7.
 --
 -- see: https://github.com/sol/hpack
 
 name:           exon
-version:        0.4.0.0
+version:        0.5.0.0
 synopsis:       Monoidal Quasiquote Interpolation
 description:    See https://hackage.haskell.org/package/exon/docs/Exon.html
 category:       String
@@ -55,6 +55,7 @@
       DisambiguateRecordFields
       DoAndIfThenElse
       DuplicateRecordFields
+      EmptyCase
       EmptyDataDecls
       ExistentialQuantification
       FlexibleContexts
@@ -69,8 +70,9 @@
       MultiParamTypeClasses
       MultiWayIf
       NamedFieldPuns
-      OverloadedStrings
+      OverloadedLabels
       OverloadedLists
+      OverloadedStrings
       PackageImports
       PartialTypeSignatures
       PatternGuards
@@ -97,7 +99,7 @@
   ghc-options: -Wall -Wredundant-constraints -Wincomplete-uni-patterns -Wmissing-deriving-strategies -Widentities -Wunused-packages
   build-depends:
       base >=4.12 && <5
-    , flatparse >=0.2
+    , flatparse >=0.3.5.1
     , haskell-src-exts <1.24
     , haskell-src-meta <0.9
     , incipit-base >=0.2
@@ -140,6 +142,7 @@
       DisambiguateRecordFields
       DoAndIfThenElse
       DuplicateRecordFields
+      EmptyCase
       EmptyDataDecls
       ExistentialQuantification
       FlexibleContexts
@@ -154,8 +157,9 @@
       MultiParamTypeClasses
       MultiWayIf
       NamedFieldPuns
-      OverloadedStrings
+      OverloadedLabels
       OverloadedLists
+      OverloadedStrings
       PackageImports
       PartialTypeSignatures
       PatternGuards
diff --git a/lib/Exon/Data/RawSegment.hs b/lib/Exon/Data/RawSegment.hs
--- a/lib/Exon/Data/RawSegment.hs
+++ b/lib/Exon/Data/RawSegment.hs
@@ -9,4 +9,4 @@
   StringSegment String
   |
   ExpSegment String
-  deriving (Eq, Show)
+  deriving stock (Eq, Show)
diff --git a/lib/Exon/Data/Result.hs b/lib/Exon/Data/Result.hs
--- a/lib/Exon/Data/Result.hs
+++ b/lib/Exon/Data/Result.hs
@@ -6,7 +6,7 @@
   Empty
   |
   Result a 
-  deriving (Eq, Show, Foldable)
+  deriving stock (Eq, Show, Foldable)
 
 instance Semigroup a => Semigroup (Result a) where
   (<>) Empty a = a
diff --git a/lib/Exon/Data/Segment.hs b/lib/Exon/Data/Segment.hs
--- a/lib/Exon/Data/Segment.hs
+++ b/lib/Exon/Data/Segment.hs
@@ -9,4 +9,4 @@
   Whitespace String
   |
   Expression a
-  deriving (Eq, Show)
+  deriving stock (Eq, Show)
diff --git a/lib/Exon/Parse.hs b/lib/Exon/Parse.hs
--- a/lib/Exon/Parse.hs
+++ b/lib/Exon/Parse.hs
@@ -20,7 +20,7 @@
   runParserS,
   satisfy,
   some_,
-  spanned,
+  withSpan,
   string,
   takeRest,
   (<|>),
@@ -30,11 +30,11 @@
 import Exon.Data.RawSegment (RawSegment (ExpSegment, StringSegment, WsSegment))
 
 type Parser =
-  FlatParse.Parser Text
+  FlatParse.Parser Int Text
 
 span :: Parser () -> Parser String
 span seek =
-  spanned seek \ _ sp -> inSpan sp takeRest
+  withSpan seek \ _ sp -> inSpan sp takeRest
 
 ws :: Parser Char
 ws =
diff --git a/test/Exon/Test/BasicTest.hs b/test/Exon/Test/BasicTest.hs
--- a/test/Exon/Test/BasicTest.hs
+++ b/test/Exon/Test/BasicTest.hs
@@ -10,7 +10,7 @@
 
 newtype Mon =
   Mon String
-  deriving (Eq, Show)
+  deriving stock (Eq, Show)
   deriving newtype (IsString)
 
 instance Semigroup Mon where
diff --git a/test/Exon/Test/KeepWsTest.hs b/test/Exon/Test/KeepWsTest.hs
--- a/test/Exon/Test/KeepWsTest.hs
+++ b/test/Exon/Test/KeepWsTest.hs
@@ -6,7 +6,7 @@
 
 newtype Mon =
   Mon String
-  deriving (Eq, Show)
+  deriving stock (Eq, Show)
   deriving newtype (IsString, Semigroup, Monoid)
 
 test_keepWs :: TestT IO ()
diff --git a/test/Exon/Test/ShowsPrecTest.hs b/test/Exon/Test/ShowsPrecTest.hs
--- a/test/Exon/Test/ShowsPrecTest.hs
+++ b/test/Exon/Test/ShowsPrecTest.hs
@@ -10,7 +10,7 @@
     x :: Int,
     y :: Int
   }
-  deriving (Eq, Show)
+  deriving stock (Eq, Show)
 
 data Record =
   Record {
@@ -18,11 +18,11 @@
     maybeNumber :: Maybe Int,
     value :: Value
   }
-  deriving (Eq)
+  deriving stock (Eq)
 
 data Wrap =
   Wrap Int Record
-  deriving (Eq, Show)
+  deriving stock (Eq, Show)
 
 instance Show Record where
   showsPrec d Record {..} =
