diff --git a/sexp-grammar.cabal b/sexp-grammar.cabal
--- a/sexp-grammar.cabal
+++ b/sexp-grammar.cabal
@@ -1,5 +1,5 @@
 name:                sexp-grammar
-version:             2.3.4.1
+version:             2.3.4.2
 license:             BSD3
 license-file:        LICENSE
 author:              Yevhen Smolanka, Sergey Vinokurov
@@ -44,8 +44,8 @@
   build-depends:
       array              >=0.5   && <0.6
     , base               >=4.11  && <5.0
-    , bytestring         >=0.10  && <0.12
-    , containers         >=0.5.5 && <0.7
+    , bytestring         >=0.10  && <0.13
+    , containers         >=0.5.5 && <0.8
     , data-fix           >=0.3   && <0.4
     , deepseq            >=1.4.3 && <2.0
     , invertible-grammar >=0.1.3 && <0.2
@@ -53,7 +53,7 @@
     , recursion-schemes  >=5.2   && <5.3
     , scientific         >=0.3.3 && <0.4
     , semigroups         >=0.16  && <0.21
-    , text               >=1.2   && <1.3 || >=2.0 && <2.1
+    , text               >=1.2   && <1.3 || >=2.0 && <2.2
     , utf8-string        >=1.0   && <2.0
 
   build-tools: alex, happy
diff --git a/src/Language/Sexp/Types.hs b/src/Language/Sexp/Types.hs
--- a/src/Language/Sexp/Types.hs
+++ b/src/Language/Sexp/Types.hs
@@ -65,6 +65,8 @@
 instance (Eq p) => Eq1 (LocatedBy p) where
   liftEq eq (p :< a) (q :< b) = p == q && a `eq` b
 
+instance (NFData p, NFData e) => NFData (LocatedBy p e)
+
 instance NFData p => NFData1 (LocatedBy p) where
   liftRnf f (p :< a) = rnf p `seq` f a
 
@@ -126,6 +128,8 @@
 instance NFData Atom
 
 instance NFData Position
+
+instance NFData e => NFData (SexpF e)
 
 instance NFData1 SexpF where
   liftRnf f = \case
