diff --git a/CAS/Dumb/Symbols/PatternGenerator.hs b/CAS/Dumb/Symbols/PatternGenerator.hs
--- a/CAS/Dumb/Symbols/PatternGenerator.hs
+++ b/CAS/Dumb/Symbols/PatternGenerator.hs
@@ -13,7 +13,7 @@
 {-# LANGUAGE QuasiQuotes         #-}
 {-# LANGUAGE CPP                 #-}
 
-module CAS.Dumb.Symbols.PatternGenerator where
+module CAS.Dumb.Symbols.PatternGenerator (makeSymbols, makeQualifiedSymbols) where
 
 import CAS.Dumb.Tree
 import CAS.Dumb.Symbols
@@ -27,6 +27,21 @@
             -> DecsQ
 makeSymbols t = makeQualifiedSymbols t ""
 
+plainTVinf :: Name -> TyVarBndr
+#if MIN_VERSION_template_haskell(2,17,0)
+                                Specificity
+plainTVinf n = PlainTV n inferredSpec
+#else
+plainTVinf = PlainTV
+#endif
+
+conPnoTA :: Name -> [Pat] -> Pat
+#if MIN_VERSION_template_haskell(2,18,0)
+conPnoTA n pats = ConP n [] pats
+#else
+conPnoTA = ConP
+#endif
+
 makeQualifiedSymbols
             :: Name   -- ^ Desired type of the symbols.
             -> String -- ^ Prefix for the generated Haskell names.
@@ -35,7 +50,7 @@
 makeQualifiedSymbols casType namePrefix = fmap concat . mapM mkSymbol
  where mkSymbol c
         | isLower (head idfyer) = return
-         [ SigD symbName $ ForallT [PlainTV γ, PlainTV s¹, PlainTV s², PlainTV ζ] [] typeName
+         [ SigD symbName $ ForallT [plainTVinf γ, plainTVinf s¹, plainTVinf s², plainTVinf ζ] [] typeName
         -- c :: casType γ s² s¹ ζ
          , ValD (VarP symbName)
                 (NormalB . AppE (ConE 'Symbol)
@@ -51,7 +66,7 @@
          , PatSynD symbName
                    (PrefixPatSyn [])
                    ImplBidir
-                   ('Symbol `ConP` ['PrimitiveSymbol `ConP` [LitP $ CharL c]])
+                   ('Symbol `conPnoTA` ['PrimitiveSymbol `conPnoTA` [LitP $ CharL c]])
         -- pattern c = Symbol (StringSymbol ['c'])
          ] 
 #endif
diff --git a/CAS/Dumb/Symbols/Unicode/MathLatin_RomanGreek__BopomofoGaps.hs b/CAS/Dumb/Symbols/Unicode/MathLatin_RomanGreek__BopomofoGaps.hs
--- a/CAS/Dumb/Symbols/Unicode/MathLatin_RomanGreek__BopomofoGaps.hs
+++ b/CAS/Dumb/Symbols/Unicode/MathLatin_RomanGreek__BopomofoGaps.hs
@@ -32,6 +32,8 @@
         , 𝑎,𝑏,𝑐,𝑑,𝑒,𝑓,𝑔,ℎ,𝑖,𝑗,𝑘,𝑙,𝑚,𝑛,𝑜,𝑝,𝑞,𝑟,𝑠,𝑡,𝑢,𝑣,𝑤,𝑥,𝑦,𝑧
         -- *** Bold
         , 𝐚,𝐛,𝐜,𝐝,𝐞,𝐟,𝐠,𝐡,𝐢,𝐣,𝐤,𝐥,𝐦,𝐧,𝐨,𝐩,𝐪,𝐫,𝐬,𝐭,𝐮,𝐯,𝐰,𝐱,𝐲,𝐳
+        -- *** Fraktur
+        , 𝔞,𝔟,𝔠,𝔡,𝔢,𝔣,𝔤,𝔥,𝔦,𝔧,𝔨,𝔩,𝔪,𝔫,𝔬,𝔭,𝔮,𝔯,𝔰,𝔱,𝔲,𝔳,𝔴,𝔵,𝔶,𝔷
         -- *** Greek
         , α,β,γ,δ,ε,ζ,η,θ,ϑ,ι,κ,λ,μ,ν,ξ,ο,π,ρ,ϱ,σ,ς,τ,υ,ϕ,φ,χ,ψ,ω
         -- ** Uppercase letters
@@ -81,18 +83,24 @@
 instance Unwieldy c => Unwieldy (Symbol c) where
   unwieldiness (NatSymbol i) = 0.24127 + fromInteger (abs i)
   unwieldiness (PrimitiveSymbol c)
-    | c>='a' && c<='z'  = 1.17236 + fromIntegral (fromEnum 'z' - ucp)/49.4530
-    | c>='𝑎' && c<='𝑧'  = 1.17249 + fromIntegral (fromEnum '𝑧' - ucp)/49.4564
+    | c>='a' && c<='z'  = 1.17236 + fromIntegral (fromEnum 'z' - ucp         )/49.4530
+    | c>='𝑎' && c<='𝑧'  = 1.17249 + fromIntegral (fromEnum '𝑧' - ucp         )/49.4564
     | c=='ℎ'            = 1.17249 + fromIntegral (fromEnum 'z' - fromEnum 'h')/49.4564
-    | c>='A' && c<='Z'  = 1.17211 + fromIntegral (fromEnum 'Z' - ucp)/49.4571
-    | c>='𝐴' && c<='𝑍'  = 1.17213 + fromIntegral (fromEnum '𝑍' - ucp)/49.4511
-    | c>='𝐚' && c<='𝐳'  = 1.17228 + fromIntegral (fromEnum '𝐳' - ucp)/49.4572
-    | c>='𝐀' && c<='𝐙'  = 1.17210 + fromIntegral (fromEnum '𝐙' - ucp)/49.4518
-    | c>='𝓐' && c<='𝓩'  = 1.17212 + fromIntegral (fromEnum '𝓩' - ucp)/49.4528
-    | c>='α' && c<='ω'  = 1.03627 + fromIntegral (fromEnum 'ω' - ucp)/342.637
+    | c>='A' && c<='Z'  = 1.17211 + fromIntegral (fromEnum 'Z' - ucp         )/49.4571
+    | c>='𝐴' && c<='𝑍'  = 1.17213 + fromIntegral (fromEnum '𝑍' - ucp         )/49.4511
+    | c>='𝐚' && c<='𝐳'  = 1.17228 + fromIntegral (fromEnum '𝐳' - ucp         )/49.4572
+    | c>='𝔄' && c<='ℨ'  = 1.18131 + fromIntegral (fromEnum 'ℨ' - ucp         )/51.4522
+    | c=='ℭ'            = 1.18131 + fromIntegral (fromEnum 'Z' - fromEnum 'C')/51.4522
+    | c=='ℌ'            = 1.18131 + fromIntegral (fromEnum 'Z' - fromEnum 'H')/51.4522
+    | c=='ℑ'            = 1.18131 + fromIntegral (fromEnum 'Z' - fromEnum 'I')/51.4522
+    | c=='ℜ'            = 1.18131 + fromIntegral (fromEnum 'Z' - fromEnum 'R')/51.4522
+    | c>='𝔞' && c<='𝔷'  = 1.18134 + fromIntegral (fromEnum '𝔷' - ucp         )/51.4522
+    | c>='𝐀' && c<='𝐙'  = 1.17210 + fromIntegral (fromEnum '𝐙' - ucp         )/49.4518
+    | c>='𝓐' && c<='𝓩'  = 1.17212 + fromIntegral (fromEnum '𝓩' - ucp         )/49.4528
+    | c>='α' && c<='ω'  = 1.03627 + fromIntegral (fromEnum 'ω' - ucp         )/342.637
     | c=='ϑ'            = 1.03628 + fromIntegral (fromEnum 'ω' - fromEnum 'θ')/342.637
     | c=='ϕ'            = 1.03628 + fromIntegral (fromEnum 'ω' - fromEnum 'φ')/342.637
-    | c>='Α' && c<='Ω'  = 1.03625 + fromIntegral (fromEnum 'Ω' - ucp)/342.642
+    | c>='Α' && c<='Ω'  = 1.03625 + fromIntegral (fromEnum 'Ω' - ucp         )/342.642
     | otherwise         = 1.24551 + fromIntegral ucp / 52792.42
                                   + fromIntegral (ucp`mod`136)/9722.3
    where ucp = fromEnum c
@@ -113,6 +121,7 @@
 
 makeSymbols ''Expression' "αβγδεζηθϑικλμνξοπρϱσςτυϕφχψω"
 
+makeSymbols ''Expression' "𝔞𝔟𝔠𝔡𝔢𝔣𝔤𝔥𝔦𝔧𝔨𝔩𝔪𝔫𝔬𝔭𝔮𝔯𝔰𝔱𝔲𝔳𝔴𝔵𝔶𝔷"
 
 -- $uppercaseCaveat
 -- These are only available in GHC>8.2. The ability to use uppercase letters as variables
diff --git a/dumb-cas.cabal b/dumb-cas.cabal
--- a/dumb-cas.cabal
+++ b/dumb-cas.cabal
@@ -2,7 +2,7 @@
 -- documentation, see http://haskell.org/cabal/users-guide/
 
 name:                dumb-cas
-version:             0.2.1.0
+version:             0.2.1.1
 synopsis:            A computer “algebra” system that knows nothing about algebra, at the core.
 description:         This is a framework for untyped, symbolic computations like a CAS
                      does, without any baked-in rules whatsoever but the ability to
@@ -32,7 +32,7 @@
   other-modules:       CAS.Dumb.Util.These
                        CAS.Dumb.Symbols.PatternGenerator
   other-extensions:    DeriveFunctor
-  build-depends:       base >=4.8 && <4.14, hashable >=1.2 && <1.4
+  build-depends:       base >=4.8 && <4.18, hashable >=1.2 && <1.5
                      , containers
                      , unordered-containers >=0.2 && <0.3
                      , decimal-literals >= 0.1 && < 0.2
