diff --git a/ChangeLog.md b/ChangeLog.md
--- a/ChangeLog.md
+++ b/ChangeLog.md
@@ -1,3 +1,8 @@
+# 1.3.19  [2023-09-15]
+
+  - dependencies: Update to hledger-lib 1.31
+  - dependencies: Allow megaparsec 9.5
+
 # 1.3.18  [2023-04-05]
 
   - dependencies: Update to hledger-lib 1.29
diff --git a/hledger-iadd.cabal b/hledger-iadd.cabal
--- a/hledger-iadd.cabal
+++ b/hledger-iadd.cabal
@@ -1,5 +1,5 @@
 name:                hledger-iadd
-version:             1.3.18
+version:             1.3.19
 synopsis:            A terminal UI as drop-in replacement for hledger add
 description:         This is a terminal UI as drop-in replacement for hledger add.
                      .
@@ -60,7 +60,7 @@
                      , Data.Time.Ext
   default-language:    Haskell2010
   build-depends:       base >= 4.12 && < 5
-                     , hledger-lib >= 1.29 && < 1.30
+                     , hledger-lib >= 1.29 && < 1.32
                      , brick >= 1.5
                      , vty >= 5.4
                      , text
@@ -71,7 +71,7 @@
                      , transformers >= 0.3
                      , time >= 1.5
                      , vector
-                     , megaparsec >= 7.0 && <9.3
+                     , megaparsec >= 7.0 && <9.6
                      , containers
                      , optparse-applicative
                      , directory
@@ -87,7 +87,7 @@
   default-language:    Haskell2010
   build-depends:       base >= 4.12 && < 5
                      , hledger-iadd
-                     , hledger-lib >= 1.29 && <1.30
+                     , hledger-lib >= 1.29 && <1.32
                      , brick >= 1.5
                      , vty >= 5.4
                      , text
@@ -103,7 +103,7 @@
                      , xdg-basedir
                      , unordered-containers
                      , free >= 4.12.4
-                     , megaparsec >= 7.0 && <9.3
+                     , megaparsec >= 7.0 && <9.6
   ghc-options:         -threaded -Wall -fdefer-typed-holes -fno-warn-name-shadowing
 
 test-suite spec
@@ -117,7 +117,7 @@
   default-language:   Haskell2010
   build-depends:      base >= 4.12 && < 5
                     , hledger-iadd
-                    , hledger-lib >= 1.29 && <1.30
+                    , hledger-lib >= 1.31 && <1.32
                     , text
                     , transformers >= 0.3
                     , time >= 1.5
@@ -125,7 +125,7 @@
                     , hspec
                     , QuickCheck
                     , free >= 4.12.4
-                    , megaparsec >= 7.0 && <9.3
+                    , megaparsec >= 7.0 && <9.6
                     , text-zipper >= 0.10
   build-tool-depends: hspec-discover:hspec-discover ==2.*
   ghc-options:        -threaded -Wall -fdefer-typed-holes -fno-warn-name-shadowing
diff --git a/src/Brick/Widgets/HelpMessage.hs b/src/Brick/Widgets/HelpMessage.hs
--- a/src/Brick/Widgets/HelpMessage.hs
+++ b/src/Brick/Widgets/HelpMessage.hs
@@ -79,7 +79,7 @@
 
 
 resetHelpWidget :: HelpWidget n -> EventM n s ()
-resetHelpWidget = vScrollToBeginning . scroller
+resetHelpWidget x = vScrollToBeginning (scroller x)
 
 key :: Text -> Text -> Widget n
 key k h =  withAttr (helpAttr <> attrName "key") (txt ("  " <> k))
diff --git a/tests/ModelSpec.hs b/tests/ModelSpec.hs
--- a/tests/ModelSpec.hs
+++ b/tests/ModelSpec.hs
@@ -193,7 +193,7 @@
         -- We use 'read' in the following because hledger-lib 1.19 changed the
         -- type of 'asprecision' from Int to 'AmountPrecision'. 'read' works in
         -- both cases.
-        a2 = (HL.eur 0.5) { HL.astyle = HL.amountstyle { HL.asprecision = HL.Precision 15 } }
+        a2 = (HL.eur 0.5) { HL.astyle = HL.amountstyle { HL.asprecision = Just (HL.Precision 15) } }
 
         p1 = mkPosting ("Test", -1)
         p2 = HL.nullposting { HL.paccount = "Toast", HL.pamount = HL.mixedAmount a1 }
@@ -212,7 +212,7 @@
         t2' = mkTransaction ((2021,3,12), "Test", [("Toast", -1)])
         testPosting = HL.nullposting
           { HL.paccount = "Test"
-          , HL.pamount = HL.mixed [ (HL.eur 1) { HL.astyle = HL.amountstyle { HL.asdecimalpoint = Just ';' }}]}
+          , HL.pamount = HL.mixed [ (HL.eur 1) { HL.astyle = HL.amountstyle { HL.asdecimalmark = Just ';' }}]}
         t2 = t2' { HL.tpostings =  testPosting : HL.tpostings t2' }
     isSubsetTransaction t1 t2 `shouldBe` True
 
