diff --git a/myxine-client.cabal b/myxine-client.cabal
--- a/myxine-client.cabal
+++ b/myxine-client.cabal
@@ -1,6 +1,6 @@
 cabal-version:       2.4
 name:                myxine-client
-version:             0.0.0.1
+version:             0.0.0.2
 synopsis:            A Haskell client for the Myxine GUI server
 homepage:            https://github.com/GaloisInc/myxine
 bug-reports:         https://github.com/GaloisInc/myxine/issues
@@ -38,19 +38,8 @@
   "alpha" stability at present. No compatibility between alpha versions is
   guaranteed.
 
-common options
-  default-language:    Haskell2010
-  ghc-options:         -Wall
-                       -Wincomplete-uni-patterns
-                       -Wincomplete-record-updates
-                       -Wcompat
-                       -Widentities
-                       -Wredundant-constraints
-                       -fhide-source-paths
-                       -Wpartial-fields
-
 common deps
-  build-depends:       base                 ^>=4.13.0.0,
+  build-depends:       base                 >= 4.12.0.0 && <= 4.14.0.0,
                        req                  ^>= 3.1,
                        aeson                ^>= 1.4,
                        text                 ^>= 1.2,
@@ -59,12 +48,44 @@
                        unordered-containers ^>= 0.2,
                        dependent-map        ^>= 0.3,
                        dependent-sum        ^>= 0.6,
-                       template-haskell     ^>= 2.15,
+                       template-haskell     >= 2.14.0.0 && <= 2.15.0.0,
                        hashable             ^>= 1.3,
                        file-embed           ^>= 0.0.11.1,
                        http-client          ^>= 0.6,
                        http-types           ^>= 0.12
 
+common options
+  default-language:    Haskell2010
+  ghc-options:         -Wall
+                       -Wincomplete-uni-patterns
+                       -Wincomplete-record-updates
+                       -Wcompat
+                       -Widentities
+                       -Wredundant-constraints
+                       -fhide-source-paths
+                       -Wpartial-fields
+  default-extensions:  BlockArguments,
+                       DataKinds,
+                       DeriveAnyClass,
+                       DeriveGeneric,
+                       DerivingStrategies,
+                       DerivingVia,
+                       DuplicateRecordFields,
+                       EmptyCase,
+                       GADTs,
+                       GeneralizedNewtypeDeriving,
+                       KindSignatures,
+                       LambdaCase,
+                       NamedFieldPuns,
+                       OverloadedStrings,
+                       RankNTypes,
+                       ScopedTypeVariables,
+                       StandaloneDeriving,
+                       TemplateHaskell,
+                       TupleSections,
+                       TypeApplications,
+                       ViewPatterns
+
 library
   import:              deps, options
   exposed-modules:     Myxine
@@ -84,7 +105,6 @@
   type:                exitcode-stdio-1.0
   hs-source-dirs:      test
   main-is:             Test.hs
-  build-depends:       base ^>=4.13.0.0,
-                       myxine-client,
+  build-depends:       myxine-client,
                        text,
                        bytestring
diff --git a/src/Myxine.hs b/src/Myxine.hs
--- a/src/Myxine.hs
+++ b/src/Myxine.hs
@@ -1,7 +1,3 @@
-{-# language GADTs, DataKinds, DuplicateRecordFields, RankNTypes, StrictData,
-    ScopedTypeVariables, BlockArguments, KindSignatures, TemplateHaskell,
-    OverloadedStrings, DerivingStrategies, DerivingVia, StandaloneDeriving,
-    DeriveGeneric, DeriveAnyClass, GeneralizedNewtypeDeriving, NamedFieldPuns #-}
 {-|
     Description : High-level "model-view-controller" interface to the Myxine server
 
diff --git a/src/Myxine/Direct.hs b/src/Myxine/Direct.hs
--- a/src/Myxine/Direct.hs
+++ b/src/Myxine/Direct.hs
@@ -1,7 +1,3 @@
-{-# language BlockArguments, ScopedTypeVariables, OverloadedStrings,
-  NamedFieldPuns, GeneralizedNewtypeDeriving, DataKinds, DeriveAnyClass,
-  RankNTypes, LambdaCase, DerivingStrategies #-}
-
 {-|
 Description : Direct one-to-one typed bindings to the Myxine server API
 
diff --git a/src/Myxine/Event.hs b/src/Myxine/Event.hs
--- a/src/Myxine/Event.hs
+++ b/src/Myxine/Event.hs
@@ -1,6 +1,4 @@
-{-# language TemplateHaskell, StrictData, DeriveGeneric, DeriveAnyClass, GADTs,
-    KindSignatures, StandaloneDeriving, OverloadedStrings, EmptyCase,
-    DuplicateRecordFields, DerivingStrategies #-}
+{-# language StrictData #-}
 {-# options_ghc -Wno-name-shadowing -Wno-unused-matches #-}
 {-# options_haddock not-home #-}
 
diff --git a/src/Myxine/Internal/EventStream.hs b/src/Myxine/Internal/EventStream.hs
--- a/src/Myxine/Internal/EventStream.hs
+++ b/src/Myxine/Internal/EventStream.hs
@@ -1,6 +1,3 @@
-{-# language ScopedTypeVariables, BlockArguments, OverloadedStrings,
-  FlexibleInstances, TypeApplications, ViewPatterns, LambdaCase #-}
-
 {-| * A generic implementation of @text/event-stream@ parsing
 
     __Note:__ No end-user of this library needs to use this module; it's exposed
diff --git a/src/Myxine/Internal/TH.hs b/src/Myxine/Internal/TH.hs
--- a/src/Myxine/Internal/TH.hs
+++ b/src/Myxine/Internal/TH.hs
@@ -1,8 +1,3 @@
-{-# language GADTs, DataKinds, DuplicateRecordFields, RankNTypes, StrictData,
-    ScopedTypeVariables, BlockArguments, KindSignatures, TemplateHaskell,
-    OverloadedStrings, DerivingStrategies, DerivingVia, StandaloneDeriving,
-    DeriveGeneric, DeriveAnyClass, NamedFieldPuns, GeneralizedNewtypeDeriving,
-    TupleSections, LambdaCase #-}
 {-# options_ghc -Wno-incomplete-uni-patterns #-}
 
 {-| * Internal Template-Haskell for generating events
diff --git a/src/Myxine/Page.hs b/src/Myxine/Page.hs
--- a/src/Myxine/Page.hs
+++ b/src/Myxine/Page.hs
@@ -1,5 +1,3 @@
-{-# language BlockArguments, NamedFieldPuns, OverloadedStrings,
-  ScopedTypeVariables, TypeApplications, LambdaCase #-}
 {-# options_haddock not-home #-}
 
 module Myxine.Page
diff --git a/src/Myxine/Target.hs b/src/Myxine/Target.hs
--- a/src/Myxine/Target.hs
+++ b/src/Myxine/Target.hs
@@ -1,4 +1,3 @@
-{-# language NamedFieldPuns, DeriveGeneric, DeriveAnyClass #-}
 {-# options_haddock not-home #-}
 
 module Myxine.Target (Target, attribute, tag) where
