diff --git a/CHANGELOG.md b/CHANGELOG.md
--- a/CHANGELOG.md
+++ b/CHANGELOG.md
@@ -9,6 +9,9 @@
 
 # Changelog by versions
 
+## 3.22.4.1
+* QuickCheck instance fix.
+
 ## 3.22.4.0
 * Define `(<>)` instead of `mappend`.
 * Use `fmap` instead of `liftM`.
diff --git a/HaTeX.cabal b/HaTeX.cabal
--- a/HaTeX.cabal
+++ b/HaTeX.cabal
@@ -1,15 +1,15 @@
-Name: HaTeX
-Version: 3.22.4.0
-Category: LaTeX
-Build-type: Simple
-License: BSD3
-License-file: license
-Author: Daniel Casanueva (daniel.casanueva `at` proton.me)
-Maintainer: Daniel Casanueva (daniel.casanueva `at` proton.me)
+name: HaTeX
+version: 3.22.4.1
+category: LaTeX
+build-type: Simple
+license: BSD3
+license-file: license
+author: Daniel Casanueva (daniel.casanueva `at` proton.me)
+maintainer: Daniel Casanueva (daniel.casanueva `at` proton.me)
 homepage: https://gitlab.com/daniel-casanueva/haskell/HaTeX
-Bug-reports: https://gitlab.com/daniel-casanueva/haskell/HaTeX/-/issues
-Synopsis: The Haskell LaTeX library.
-Description: This library implements the LaTeX syntax and provides some useful abstractions.
+bug-reports: https://gitlab.com/daniel-casanueva/haskell/HaTeX/-/issues
+synopsis: The Haskell LaTeX library.
+description: This library implements the LaTeX syntax and provides some useful abstractions.
              .
              Some of the things you can do with HaTeX are:
              .
@@ -31,14 +31,14 @@
              or if you already have the LaTeX document written and you just want to add some automatically
              generated LaTeX code somewhere, check haskintex: <https://daniel-casanueva.gitlab.io/haskell/haskintex>.
              It allows you to embed Haskell in LaTeX. It also makes it easy to use HaTeX within a LaTeX document.
-Cabal-version: 1.18
-Extra-source-files:
+cabal-version: 1.18
+extra-source-files:
   -- Examples
   Examples/*.hs
   -- Tests
   parsertest/*.tex
   parsertest/parsertest.hs
-Extra-doc-files:
+extra-doc-files:
   README.md
   CHANGELOG.md
   -- TikZ
@@ -48,11 +48,11 @@
   -- Others
   docfiles/others/*.png
 
-Library
-  Default-language: Haskell2010
-  Build-depends: base == 4.*
-               , bytestring >= 0.9.2.1 && < 0.12
-               , text >= 0.11.2.3 && < 2.1
+library
+  default-language: Haskell2010
+  build-depends: base == 4.*
+               , bytestring >= 0.9.2.1 && < 0.13
+               , text >= 0.11.2.3 && < 2.2
                , transformers >= 0.2.2 && < 0.7
                , containers >= 0.4.2.1 && < 0.7
                , hashable >= 1.2 && < 1.5
@@ -68,7 +68,7 @@
     build-depends: ghc-prim
   if impl(ghc < 8.0)
     build-depends: semigroups
-  Exposed-modules:
+  exposed-modules:
     Text.LaTeX
       -- Base (Core of the library)
       Text.LaTeX.Base
@@ -115,13 +115,13 @@
           Text.LaTeX.Packages.TikZ.PathBuilder
           Text.LaTeX.Packages.TikZ.Simple
           Text.LaTeX.Packages.TikZ.Syntax
-  Other-modules: Paths_HaTeX
-  Default-extensions: OverloadedStrings, TypeFamilies, TypeOperators
-  Other-extensions: CPP
+  other-modules: Paths_HaTeX
+  default-extensions: OverloadedStrings, TypeFamilies, TypeOperators
+  other-extensions: CPP
   ghc-options: -Wall -fno-warn-orphans
 
-Test-Suite hatex-test
-  Default-language: Haskell2010
+test-suite hatex-test
+  default-language: Haskell2010
   type: exitcode-stdio-1.0
   hs-source-dirs: test
   main-is: Main.hs
@@ -133,8 +133,8 @@
                , parsec
   ghc-options: -Wall -fno-warn-orphans
 
-Test-Suite parser-tests
-  Default-language: Haskell2010
+test-suite parser-tests
+  default-language: Haskell2010
   type: exitcode-stdio-1.0
   hs-source-dirs: parsertest
   main-is: parsertest.hs
diff --git a/Text/LaTeX/Base/Syntax.hs b/Text/LaTeX/Base/Syntax.hs
--- a/Text/LaTeX/Base/Syntax.hs
+++ b/Text/LaTeX/Base/Syntax.hs
@@ -273,7 +273,7 @@
 arbitraryChar = elements $
      ['A'..'Z']
   ++ ['a'..'z']
-  ++ "\n-+*/!\"().,:;'@<>? "
+  ++ "\n-+*/!\".,:;'@? "
 
 -- | Utility for the instance of 'LaTeX' to 'Arbitrary'.
 --   We generate a short sequence of characters and
@@ -306,7 +306,7 @@
   -- not getting too large.
   n <- choose (0,16 :: Int)
   case n of
-    0 -> if inDollar then arbitraryLaTeX True else pure TeXEmpty
+    0 -> if inDollar then arbitraryLaTeX inDollar else pure TeXEmpty
     1 -> do m <- choose (0,5)
             TeXComm <$> arbitraryName <*> vectorOf m arbitrary
     2 -> TeXCommS <$> arbitraryName
@@ -318,9 +318,9 @@
                     let t = [Parentheses,Square,Dollar,DoubleDollar] !! m
                     TeXMath <$> pure t <*> arbitraryLaTeX (t == Dollar || t == DoubleDollar)
     5 -> TeXLineBreak <$> arbitrary <*> arbitrary
-    6 -> TeXBraces <$> arbitrary
+    6 -> TeXBraces <$> arbitraryLaTeX inDollar
     7 -> TeXComment <$> arbitraryRaw
-    8 -> TeXSeq <$> (if inDollar then arbitraryLaTeX True else arbitrary) <*> arbitrary
+    8 -> TeXSeq <$> arbitraryLaTeX inDollar <*> arbitraryLaTeX inDollar
     _ -> TeXRaw <$> arbitraryRaw
 
 instance Arbitrary TeXArg where
