diff --git a/CHANGES.md b/CHANGES.md
--- a/CHANGES.md
+++ b/CHANGES.md
@@ -1,6 +1,14 @@
 Internal/api/developer-ish changes in the hledger-lib (and hledger) packages.
 For user-visible changes, see the hledger package changelog.
 
+# 1.16.1 2019-12-03
+
+
+
+- Drop unnecessary mtl-compat dependency
+
+- Fix building with GHC 8.0, 8.2
+
 # 1.16 2019-12-01
 
 - drop support for GHC 7.10, due to MonadFail hassles in JournalReader.hs
diff --git a/Hledger/Data/Dates.hs b/Hledger/Data/Dates.hs
--- a/Hledger/Data/Dates.hs
+++ b/Hledger/Data/Dates.hs
@@ -75,6 +75,8 @@
 )
 where
 
+import Prelude ()
+import "base-compat-batteries" Prelude.Compat hiding (fail)
 import qualified "base-compat-batteries" Control.Monad.Fail.Compat as Fail (MonadFail, fail)
 import Control.Applicative.Permutations
 import Control.Monad (unless)
diff --git a/Hledger/Read.hs b/Hledger/Read.hs
--- a/Hledger/Read.hs
+++ b/Hledger/Read.hs
@@ -7,6 +7,7 @@
 -}
 
 {-# LANGUAGE ScopedTypeVariables, OverloadedStrings #-}
+{-# LANGUAGE PackageImports #-}
 
 module Hledger.Read (
 
@@ -36,7 +37,8 @@
 
 import Control.Arrow (right)
 import qualified Control.Exception as C
-import Control.Monad.Except
+import Control.Monad (when)
+import "mtl" Control.Monad.Except (runExceptT)
 import Data.Default
 import Data.List
 import Data.Maybe
diff --git a/Hledger/Read/Common.hs b/Hledger/Read/Common.hs
--- a/Hledger/Read/Common.hs
+++ b/Hledger/Read/Common.hs
@@ -100,6 +100,8 @@
 )
 where
 --- * imports
+import Prelude ()
+import "base-compat-batteries" Prelude.Compat hiding (fail, readFile)
 import qualified "base-compat-batteries" Control.Monad.Fail.Compat as Fail (fail)
 import Control.Monad.Except (ExceptT(..), runExceptT, throwError)
 import Control.Monad.State.Strict hiding (fail)
diff --git a/Hledger/Read/CsvReader.hs b/Hledger/Read/CsvReader.hs
--- a/Hledger/Read/CsvReader.hs
+++ b/Hledger/Read/CsvReader.hs
@@ -30,6 +30,8 @@
   tests_CsvReader,
 )
 where
+import Prelude ()
+import "base-compat-batteries" Prelude.Compat hiding (fail)
 import qualified "base-compat-batteries" Control.Monad.Fail.Compat as Fail (fail)
 import Control.Exception          (IOException, handle, throw)
 import Control.Monad              (liftM, unless, when)
diff --git a/Hledger/Read/JournalReader.hs b/Hledger/Read/JournalReader.hs
--- a/Hledger/Read/JournalReader.hs
+++ b/Hledger/Read/JournalReader.hs
@@ -63,6 +63,8 @@
 )
 where
 --- * imports
+-- import qualified Prelude (fail)
+-- import "base-compat-batteries" Prelude.Compat hiding (fail, readFile)
 import qualified "base-compat-batteries" Control.Monad.Fail.Compat as Fail (fail)
 import qualified Control.Exception as C
 import Control.Monad (forM_, when, void)
diff --git a/hledger-lib.cabal b/hledger-lib.cabal
--- a/hledger-lib.cabal
+++ b/hledger-lib.cabal
@@ -4,10 +4,10 @@
 --
 -- see: https://github.com/sol/hpack
 --
--- hash: 3228f8dbb178d427e76291b5e60b3dee1eb4d2e5f9ab803ce8e3fe85e79f25ad
+-- hash: f67238ad457aa23ba68686a932bc3f37f30d6f3f9f4514468e35e960ab81fe1b
 
 name:           hledger-lib
-version:        1.16
+version:        1.16.1
 synopsis:       Core data types, parsers and functionality for the hledger accounting tools
 description:    This is a reusable library containing hledger's core functionality.
                 .
@@ -127,8 +127,7 @@
     , filepath
     , hashtables >=1.2.3.1
     , megaparsec >=7.0.0 && <8
-    , mtl
-    , mtl-compat
+    , mtl >=2.2.1
     , old-time
     , parsec >=3
     , parser-combinators >=0.4.0
@@ -179,8 +178,7 @@
     , filepath
     , hashtables >=1.2.3.1
     , megaparsec >=7.0.0 && <8
-    , mtl
-    , mtl-compat
+    , mtl >=2.2.1
     , old-time
     , parsec >=3
     , parser-combinators >=0.4.0
@@ -234,8 +232,7 @@
     , hashtables >=1.2.3.1
     , hledger-lib
     , megaparsec >=7.0.0 && <8
-    , mtl
-    , mtl-compat
+    , mtl >=2.2.1
     , old-time
     , parsec >=3
     , parser-combinators >=0.4.0
diff --git a/hledger_csv.5 b/hledger_csv.5
--- a/hledger_csv.5
+++ b/hledger_csv.5
@@ -1,6 +1,6 @@
 .\"t
 
-.TH "hledger_csv" "5" "December 2019" "hledger 1.16" "hledger User Manuals"
+.TH "hledger_csv" "5" "December 2019" "hledger 1.16.1" "hledger User Manuals"
 
 
 
diff --git a/hledger_csv.info b/hledger_csv.info
--- a/hledger_csv.info
+++ b/hledger_csv.info
@@ -3,8 +3,8 @@
 
 File: hledger_csv.info,  Node: Top,  Next: EXAMPLES,  Up: (dir)
 
-hledger_csv(5) hledger 1.16
-***************************
+hledger_csv(5) hledger 1.16.1
+*****************************
 
 hledger can read CSV (comma-separated value, or character-separated
 value) files as if they were journal files, automatically converting
@@ -888,57 +888,57 @@
 
 Tag Table:
 Node: Top72
-Node: EXAMPLES1829
-Ref: #examples1935
-Node: Basic2143
-Ref: #basic2243
-Node: Bank of Ireland2785
-Ref: #bank-of-ireland2920
-Node: Amazon4383
-Ref: #amazon4501
-Node: Paypal6434
-Ref: #paypal6528
-Node: CSV RULES14411
-Ref: #csv-rules14520
-Node: skip14765
-Ref: #skip14858
-Node: fields15233
-Ref: #fields15355
-Node: Transaction field names16422
-Ref: #transaction-field-names16582
-Node: Posting field names16693
-Ref: #posting-field-names16845
-Node: field assignment18077
-Ref: #field-assignment18213
-Node: if19031
-Ref: #if19140
-Node: end20856
-Ref: #end20962
-Node: date-format21186
-Ref: #date-format21318
-Node: newest-first22067
-Ref: #newest-first22205
-Node: include22888
-Ref: #include22996
-Node: TIPS23440
-Ref: #tips23522
-Node: Valid CSV23771
-Ref: #valid-csv23890
-Node: Other separator characters24082
-Ref: #other-separator-characters24270
-Node: Reading multiple CSV files24599
-Ref: #reading-multiple-csv-files24796
-Node: Valid transactions25037
-Ref: #valid-transactions25215
-Node: Deduplicating importing25843
-Ref: #deduplicating-importing26022
-Node: Setting amounts27055
-Ref: #setting-amounts27224
-Node: Setting currency/commodity28210
-Ref: #setting-currencycommodity28402
-Node: Referencing other fields29205
-Ref: #referencing-other-fields29405
-Node: How CSV rules are evaluated30302
-Ref: #how-csv-rules-are-evaluated30473
+Node: EXAMPLES1833
+Ref: #examples1939
+Node: Basic2147
+Ref: #basic2247
+Node: Bank of Ireland2789
+Ref: #bank-of-ireland2924
+Node: Amazon4387
+Ref: #amazon4505
+Node: Paypal6438
+Ref: #paypal6532
+Node: CSV RULES14415
+Ref: #csv-rules14524
+Node: skip14769
+Ref: #skip14862
+Node: fields15237
+Ref: #fields15359
+Node: Transaction field names16426
+Ref: #transaction-field-names16586
+Node: Posting field names16697
+Ref: #posting-field-names16849
+Node: field assignment18081
+Ref: #field-assignment18217
+Node: if19035
+Ref: #if19144
+Node: end20860
+Ref: #end20966
+Node: date-format21190
+Ref: #date-format21322
+Node: newest-first22071
+Ref: #newest-first22209
+Node: include22892
+Ref: #include23000
+Node: TIPS23444
+Ref: #tips23526
+Node: Valid CSV23775
+Ref: #valid-csv23894
+Node: Other separator characters24086
+Ref: #other-separator-characters24274
+Node: Reading multiple CSV files24603
+Ref: #reading-multiple-csv-files24800
+Node: Valid transactions25041
+Ref: #valid-transactions25219
+Node: Deduplicating importing25847
+Ref: #deduplicating-importing26026
+Node: Setting amounts27059
+Ref: #setting-amounts27228
+Node: Setting currency/commodity28214
+Ref: #setting-currencycommodity28406
+Node: Referencing other fields29209
+Ref: #referencing-other-fields29409
+Node: How CSV rules are evaluated30306
+Ref: #how-csv-rules-are-evaluated30477
 
 End Tag Table
diff --git a/hledger_csv.txt b/hledger_csv.txt
--- a/hledger_csv.txt
+++ b/hledger_csv.txt
@@ -760,4 +760,4 @@
 
 
 
-hledger 1.16                     December 2019                  hledger_csv(5)
+hledger 1.16.1                   December 2019                  hledger_csv(5)
diff --git a/hledger_journal.5 b/hledger_journal.5
--- a/hledger_journal.5
+++ b/hledger_journal.5
@@ -1,6 +1,6 @@
 .\"t
 
-.TH "hledger_journal" "5" "December 2019" "hledger 1.16" "hledger User Manuals"
+.TH "hledger_journal" "5" "December 2019" "hledger 1.16.1" "hledger User Manuals"
 
 
 
diff --git a/hledger_journal.info b/hledger_journal.info
--- a/hledger_journal.info
+++ b/hledger_journal.info
@@ -4,8 +4,8 @@
 
 File: hledger_journal.info,  Node: Top,  Next: FILE FORMAT,  Up: (dir)
 
-hledger_journal(5) hledger 1.16
-*******************************
+hledger_journal(5) hledger 1.16.1
+*********************************
 
 hledger's usual data source is a plain text file containing journal
 entries in hledger journal format.  This file represents a standard
@@ -1747,119 +1747,119 @@
 
 Tag Table:
 Node: Top76
-Node: FILE FORMAT2352
-Ref: #file-format2476
-Node: Transactions2779
-Ref: #transactions2900
-Node: Postings3584
-Ref: #postings3711
-Node: Dates4706
-Ref: #dates4821
-Node: Simple dates4886
-Ref: #simple-dates5012
-Node: Secondary dates5378
-Ref: #secondary-dates5532
-Node: Posting dates7095
-Ref: #posting-dates7224
-Node: Status8596
-Ref: #status8716
-Node: Description10424
-Ref: #description10562
-Node: Payee and note10882
-Ref: #payee-and-note10996
-Node: Account names11331
-Ref: #account-names11474
-Node: Amounts11961
-Ref: #amounts12097
-Node: Digit group marks13030
-Ref: #digit-group-marks13179
-Node: Amount display format14117
-Ref: #amount-display-format14274
-Node: Virtual Postings15299
-Ref: #virtual-postings15458
-Node: Balance Assertions16678
-Ref: #balance-assertions16853
-Node: Assertions and ordering17812
-Ref: #assertions-and-ordering17998
-Node: Assertions and included files18698
-Ref: #assertions-and-included-files18939
-Node: Assertions and multiple -f options19272
-Ref: #assertions-and-multiple--f-options19526
-Node: Assertions and commodities19658
-Ref: #assertions-and-commodities19888
-Node: Assertions and prices21044
-Ref: #assertions-and-prices21256
-Node: Assertions and subaccounts21696
-Ref: #assertions-and-subaccounts21923
-Node: Assertions and virtual postings22247
-Ref: #assertions-and-virtual-postings22487
-Node: Assertions and precision22629
-Ref: #assertions-and-precision22820
-Node: Balance Assignments23087
-Ref: #balance-assignments23268
-Node: Balance assignments and prices24433
-Ref: #balance-assignments-and-prices24605
-Node: Transaction prices24829
-Ref: #transaction-prices24998
-Node: Comments27264
-Ref: #comments27398
-Node: Tags28568
-Ref: #tags28686
-Node: Directives30079
-Ref: #directives30222
-Node: Comment blocks35830
-Ref: #comment-blocks35975
-Node: Including other files36151
-Ref: #including-other-files36331
-Node: Default year36739
-Ref: #default-year36908
-Node: Declaring commodities37315
-Ref: #declaring-commodities37498
-Node: Default commodity39159
-Ref: #default-commodity39335
-Node: Market prices39969
-Ref: #market-prices40134
-Node: Declaring accounts40975
-Ref: #declaring-accounts41151
-Node: Account comments42076
-Ref: #account-comments42239
-Node: Account subdirectives42634
-Ref: #account-subdirectives42829
-Node: Account types43142
-Ref: #account-types43326
-Node: Account display order44968
-Ref: #account-display-order45138
-Node: Rewriting accounts46267
-Ref: #rewriting-accounts46452
-Node: Basic aliases47188
-Ref: #basic-aliases47334
-Node: Regex aliases48038
-Ref: #regex-aliases48210
-Node: Combining aliases48928
-Ref: #combining-aliases49106
-Node: end aliases50382
-Ref: #end-aliases50530
-Node: Default parent account50631
-Ref: #default-parent-account50797
-Node: Periodic transactions51681
-Ref: #periodic-transactions51879
-Node: Periodic rule syntax53751
-Ref: #periodic-rule-syntax53957
-Node: Two spaces between period expression and description!54661
-Ref: #two-spaces-between-period-expression-and-description54980
-Node: Forecasting with periodic transactions55664
-Ref: #forecasting-with-periodic-transactions55969
-Node: Budgeting with periodic transactions57995
-Ref: #budgeting-with-periodic-transactions58234
-Node: Auto postings / transaction modifiers58683
-Ref: #auto-postings-transaction-modifiers58894
-Node: Auto postings and dates61123
-Ref: #auto-postings-and-dates61380
-Node: Auto postings and transaction balancing / inferred amounts / balance assertions61555
-Ref: #auto-postings-and-transaction-balancing-inferred-amounts-balance-assertions61930
-Node: Auto posting tags62308
-Ref: #auto-posting-tags62547
-Node: EDITOR SUPPORT63212
-Ref: #editor-support63330
+Node: FILE FORMAT2356
+Ref: #file-format2480
+Node: Transactions2783
+Ref: #transactions2904
+Node: Postings3588
+Ref: #postings3715
+Node: Dates4710
+Ref: #dates4825
+Node: Simple dates4890
+Ref: #simple-dates5016
+Node: Secondary dates5382
+Ref: #secondary-dates5536
+Node: Posting dates7099
+Ref: #posting-dates7228
+Node: Status8600
+Ref: #status8720
+Node: Description10428
+Ref: #description10566
+Node: Payee and note10886
+Ref: #payee-and-note11000
+Node: Account names11335
+Ref: #account-names11478
+Node: Amounts11965
+Ref: #amounts12101
+Node: Digit group marks13034
+Ref: #digit-group-marks13183
+Node: Amount display format14121
+Ref: #amount-display-format14278
+Node: Virtual Postings15303
+Ref: #virtual-postings15462
+Node: Balance Assertions16682
+Ref: #balance-assertions16857
+Node: Assertions and ordering17816
+Ref: #assertions-and-ordering18002
+Node: Assertions and included files18702
+Ref: #assertions-and-included-files18943
+Node: Assertions and multiple -f options19276
+Ref: #assertions-and-multiple--f-options19530
+Node: Assertions and commodities19662
+Ref: #assertions-and-commodities19892
+Node: Assertions and prices21048
+Ref: #assertions-and-prices21260
+Node: Assertions and subaccounts21700
+Ref: #assertions-and-subaccounts21927
+Node: Assertions and virtual postings22251
+Ref: #assertions-and-virtual-postings22491
+Node: Assertions and precision22633
+Ref: #assertions-and-precision22824
+Node: Balance Assignments23091
+Ref: #balance-assignments23272
+Node: Balance assignments and prices24437
+Ref: #balance-assignments-and-prices24609
+Node: Transaction prices24833
+Ref: #transaction-prices25002
+Node: Comments27268
+Ref: #comments27402
+Node: Tags28572
+Ref: #tags28690
+Node: Directives30083
+Ref: #directives30226
+Node: Comment blocks35834
+Ref: #comment-blocks35979
+Node: Including other files36155
+Ref: #including-other-files36335
+Node: Default year36743
+Ref: #default-year36912
+Node: Declaring commodities37319
+Ref: #declaring-commodities37502
+Node: Default commodity39163
+Ref: #default-commodity39339
+Node: Market prices39973
+Ref: #market-prices40138
+Node: Declaring accounts40979
+Ref: #declaring-accounts41155
+Node: Account comments42080
+Ref: #account-comments42243
+Node: Account subdirectives42638
+Ref: #account-subdirectives42833
+Node: Account types43146
+Ref: #account-types43330
+Node: Account display order44972
+Ref: #account-display-order45142
+Node: Rewriting accounts46271
+Ref: #rewriting-accounts46456
+Node: Basic aliases47192
+Ref: #basic-aliases47338
+Node: Regex aliases48042
+Ref: #regex-aliases48214
+Node: Combining aliases48932
+Ref: #combining-aliases49110
+Node: end aliases50386
+Ref: #end-aliases50534
+Node: Default parent account50635
+Ref: #default-parent-account50801
+Node: Periodic transactions51685
+Ref: #periodic-transactions51883
+Node: Periodic rule syntax53755
+Ref: #periodic-rule-syntax53961
+Node: Two spaces between period expression and description!54665
+Ref: #two-spaces-between-period-expression-and-description54984
+Node: Forecasting with periodic transactions55668
+Ref: #forecasting-with-periodic-transactions55973
+Node: Budgeting with periodic transactions57999
+Ref: #budgeting-with-periodic-transactions58238
+Node: Auto postings / transaction modifiers58687
+Ref: #auto-postings-transaction-modifiers58898
+Node: Auto postings and dates61127
+Ref: #auto-postings-and-dates61384
+Node: Auto postings and transaction balancing / inferred amounts / balance assertions61559
+Ref: #auto-postings-and-transaction-balancing-inferred-amounts-balance-assertions61934
+Node: Auto posting tags62312
+Ref: #auto-posting-tags62551
+Node: EDITOR SUPPORT63216
+Ref: #editor-support63334
 
 End Tag Table
diff --git a/hledger_journal.txt b/hledger_journal.txt
--- a/hledger_journal.txt
+++ b/hledger_journal.txt
@@ -1414,4 +1414,4 @@
 
 
 
-hledger 1.16                     December 2019              hledger_journal(5)
+hledger 1.16.1                   December 2019              hledger_journal(5)
diff --git a/hledger_timeclock.5 b/hledger_timeclock.5
--- a/hledger_timeclock.5
+++ b/hledger_timeclock.5
@@ -1,5 +1,5 @@
 
-.TH "hledger_timeclock" "5" "December 2019" "hledger 1.16" "hledger User Manuals"
+.TH "hledger_timeclock" "5" "December 2019" "hledger 1.16.1" "hledger User Manuals"
 
 
 
diff --git a/hledger_timeclock.info b/hledger_timeclock.info
--- a/hledger_timeclock.info
+++ b/hledger_timeclock.info
@@ -4,8 +4,8 @@
 
 File: hledger_timeclock.info,  Node: Top,  Up: (dir)
 
-hledger_timeclock(5) hledger 1.16
-*********************************
+hledger_timeclock(5) hledger 1.16.1
+***********************************
 
 hledger can read timeclock files.  As with Ledger, these are (a subset
 of) timeclock.el's format, containing clock-in and clock-out entries as
diff --git a/hledger_timeclock.txt b/hledger_timeclock.txt
--- a/hledger_timeclock.txt
+++ b/hledger_timeclock.txt
@@ -78,4 +78,4 @@
 
 
 
-hledger 1.16                     December 2019            hledger_timeclock(5)
+hledger 1.16.1                   December 2019            hledger_timeclock(5)
diff --git a/hledger_timedot.5 b/hledger_timedot.5
--- a/hledger_timedot.5
+++ b/hledger_timedot.5
@@ -1,5 +1,5 @@
 
-.TH "hledger_timedot" "5" "December 2019" "hledger 1.16" "hledger User Manuals"
+.TH "hledger_timedot" "5" "December 2019" "hledger 1.16.1" "hledger User Manuals"
 
 
 
diff --git a/hledger_timedot.info b/hledger_timedot.info
--- a/hledger_timedot.info
+++ b/hledger_timedot.info
@@ -4,8 +4,8 @@
 
 File: hledger_timedot.info,  Node: Top,  Next: FILE FORMAT,  Up: (dir)
 
-hledger_timedot(5) hledger 1.16
-*******************************
+hledger_timedot(5) hledger 1.16.1
+*********************************
 
 Timedot is a plain text format for logging dated, categorised quantities
 (of time, usually), supported by hledger.  It is convenient for
@@ -111,7 +111,7 @@
 
 Tag Table:
 Node: Top76
-Node: FILE FORMAT808
-Ref: #file-format909
+Node: FILE FORMAT812
+Ref: #file-format913
 
 End Tag Table
diff --git a/hledger_timedot.txt b/hledger_timedot.txt
--- a/hledger_timedot.txt
+++ b/hledger_timedot.txt
@@ -124,4 +124,4 @@
 
 
 
-hledger 1.16                     December 2019              hledger_timedot(5)
+hledger 1.16.1                   December 2019              hledger_timedot(5)
