diff --git a/.github/workflows/haskell.yml b/.github/workflows/haskell.yml
index d01883a..2399032 100644
--- a/.github/workflows/haskell.yml
+++ b/.github/workflows/haskell.yml
@@ -13,11 +13,14 @@ jobs:
 
     name: GHC ${{ matrix.ghc }} on ${{ matrix.os }}
     steps:
+
     - uses: actions/checkout@v3
+
     - uses: haskell/actions/setup@v2
       with:
         ghc-version: ${{ matrix.ghc }}
-        cabal-version: '3.10.1.0'
+        cabal-version: '3.10.3.0'
+
     - name: Cache
       uses: actions/cache@v3
       env:
@@ -32,12 +35,17 @@ jobs:
           ${{ runner.os }}
 
     - name: Install dependencies
-      run: cabal build --only-dependencies --enable-tests --enable-benchmarks
+      run: |
+        cabal update
+        cabal build --only-dependencies --enable-tests --enable-benchmarks
+
     - name: Build
       run: cabal build --enable-tests --enable-benchmarks all
+
     - name: Run tests
       # We don't run hlint tests, because different versions of hlint have different suggestions, and we don't want to worry about satisfying them all.
       run: cabal test --enable-tests -f-hlint all
+
     - if: matrix.ghc != '8.4.4'
       # docs aren't built on ghc 8.4.4 because some dependency docs don't build on older GHCs
       name: Build Docs