diff --git a/cabal.project b/cabal.project
--- a/cabal.project
+++ b/cabal.project
@@ -1,5 +1,4 @@
 packages: ./
 constraints: cpkg +development
-           , zlib +pkg-config
 
 max-backjumps: 40000
diff --git a/cpkg.cabal b/cpkg.cabal
--- a/cpkg.cabal
+++ b/cpkg.cabal
@@ -1,6 +1,6 @@
 cabal-version:      1.18
 name:               cpkg
-version:            0.2.5.6
+version:            0.2.5.7
 license:            BSD3
 license-file:       LICENSE
 copyright:          Copyright: (c) 2018-2020 Vanessa McHale
@@ -74,7 +74,7 @@
 
     ghc-options:      -Wall
     build-depends:
-        base >=4.3 && <5,
+        base >=4.11 && <5,
         containers >=0.6.0.0,
         text -any,
         temporary -any,
diff --git a/dhall/cpkg-prelude.dhall b/dhall/cpkg-prelude.dhall
--- a/dhall/cpkg-prelude.dhall
+++ b/dhall/cpkg-prelude.dhall
@@ -70,7 +70,7 @@
           , Dragonfly = "so"
           , Linux = "so"
           , Darwin = "dylib"
-          , Windows = "so"
+          , Windows = "dll"
           , Redox = "so"
           , Haiku = "so"
           , IOS = "dylib"
@@ -366,6 +366,27 @@
 
         in  { var = "LD_PRELOAD", value = flag }
 
+let mkGuileEnv =
+      λ(libs : List Text) →
+      λ(share : List Text) →
+        let flag0 =
+              concatMapSep
+                ":"
+                Text
+                (λ(lib : Text) → "${lib}/guile/3.0/site-ccache")
+                libs
+
+        let flag1 =
+              concatMapSep
+                ":"
+                Text
+                (λ(dir : Text) → "${dir}/guile/site/3.0")
+                share
+
+        in  [ { var = "GUILE_LOAD_COMPILED_PATH", value = flag0 }
+            , { var = "GUILE_LOAD_PATH", value = flag1 }
+            ]
+
 let configEnv =
       λ(linkLibs : List Text) →
       λ(cfg : types.BuildVars) →
@@ -378,6 +399,7 @@
           , mkPerlLib
               { libDirs = cfg.linkDirs, perlVersion = [ 5, 30, 2 ], cfg }
           ]
+        # mkGuileEnv cfg.linkDirs cfg.shareDirs
 
 let buildEnv =
       λ(cfg : types.BuildVars) →
@@ -388,6 +410,7 @@
           , mkLDPath cfg.linkDirs
           , mkLDFlagsGeneral cfg.linkDirs ([] : List Text) cfg
           ]
+        # mkGuileEnv cfg.linkDirs cfg.shareDirs
 
 let configSome =
       λ(linkLibs : List Text) →
diff --git a/pkgs/pkg-set.dhall b/pkgs/pkg-set.dhall
--- a/pkgs/pkg-set.dhall
+++ b/pkgs/pkg-set.dhall
@@ -285,8 +285,9 @@
       in  λ(v : List Natural) →
               prelude.simplePackage { name = "harfbuzz", version = v }
             ⫽ { pkgUrl =
-                  "https://www.freedesktop.org/software/harfbuzz/release/harfbuzz-${prelude.showVersion
-                                                                                      v}.tar.xz"
+                  let versionString = prelude.showVersion v
+
+                  in  "https://github.com/harfbuzz/harfbuzz/releases/download/${versionString}/harfbuzz-${versionString}.tar.xz"
               , pkgDeps =
                 [ prelude.unbounded "freetype-prebuild"
                 , prelude.unbounded "glib"
@@ -329,21 +330,21 @@
 
 let libjpeg-turbo =
       λ(v : List Natural) →
-          prelude.cmakePackage
-        ⫽ { pkgName = "libjpeg-turbo"
-          , pkgVersion = v
-          , pkgUrl =
-              "https://ayera.dl.sourceforge.net/project/libjpeg-turbo/${prelude.showVersion
-                                                                          v}/libjpeg-turbo-${prelude.showVersion
-                                                                                               v}.tar.gz"
-          , pkgSubdir = "libjpeg-turbo-${prelude.showVersion v}"
-          , pkgBuildDeps =
-            [ prelude.unbounded "cmake"
-            , prelude.unbounded "nasm"
-            , prelude.unbounded "make"
-            ]
-          }
+        let versionString = prelude.showVersion v
 
+        in    prelude.cmakePackage
+            ⫽ { pkgName = "libjpeg-turbo"
+              , pkgVersion = v
+              , pkgUrl =
+                  "https://downloads.sourceforge.net/libjpeg-turbo/${versionString}/libjpeg-turbo-${versionString}.tar.gz"
+              , pkgSubdir = "libjpeg-turbo-${versionString}"
+              , pkgBuildDeps =
+                [ prelude.unbounded "cmake"
+                , prelude.unbounded "nasm"
+                , prelude.unbounded "make"
+                ]
+              }
+
 let libuv =
       λ(v : List Natural) →
           prelude.defaultPackage
@@ -364,16 +365,16 @@
 
 let nasm =
       λ(v : List Natural) →
-          prelude.simplePackage { name = "nasm", version = v }
-        ⫽ { pkgUrl =
-              "http://www.nasm.us/pub/nasm/releasebuilds/${prelude.showVersion
-                                                             v}.02/nasm-${prelude.showVersion
-                                                                            v}.02.tar.xz"
-          , pkgSubdir = "nasm-${prelude.showVersion v}.02"
-          , installCommand =
-              prelude.installWithBinaries [ "bin/nasm", "bin/ndisasm" ]
-          }
+        let versionString = "2.15.05"
 
+        in    prelude.simplePackage { name = "nasm", version = v }
+            ⫽ { pkgUrl =
+                  "https://www.nasm.us/pub/nasm/releasebuilds/${versionString}/nasm-${versionString}.tar.xz"
+              , pkgSubdir = "nasm-${versionString}"
+              , installCommand =
+                  prelude.installWithBinaries [ "bin/nasm", "bin/ndisasm" ]
+              }
+
 let ncurses =
       λ(v : List Natural) →
           prelude.simplePackage { name = "ncurses", version = v }
@@ -664,6 +665,7 @@
                 , prelude.unbounded "unistring"
                 , prelude.lowerBound { name = "libtasn1", lower = [ 4, 9 ] }
                 , prelude.lowerBound { name = "p11-kit", lower = [ 0, 23, 1 ] }
+                , prelude.unbounded "guile"
                 ]
               , configureCommand =
                   prelude.configureLinkExtraLibs [ "nettle", "hogweed" ]
@@ -697,6 +699,7 @@
                 , prelude.lowerBound
                     { name = "fontconfig", lower = [ 2, 2, 95 ] }
                 , prelude.unbounded "libXext"
+                , prelude.unbounded "lzo"
                 ]
               , installCommand =
                   λ(cfg : types.BuildVars) →
@@ -849,7 +852,17 @@
           prelude.simplePackage { name = "giflib", version = v }
         ⫽ { pkgUrl =
               "https://downloads.sourceforge.net/giflib/giflib-${prelude.showVersion
-                                                                   v}.tar.bz2"
+                                                                   v}.tar.gz"
+          , configureCommand = prelude.doNothing
+          , installCommand =
+              λ(cfg : types.BuildVars) →
+                [ prelude.call
+                    { program = "make"
+                    , arguments = [ "PREFIX=${cfg.installDir}", "install" ]
+                    , environment = Some (prelude.buildEnv cfg)
+                    , procDir = None Text
+                    }
+                ]
           }
 
 let emacs =
@@ -1064,9 +1077,9 @@
       λ(v : List Natural) →
           prelude.simplePackage { name = "p11-kit", version = v }
         ⫽ { pkgUrl =
-              "https://github.com/p11-glue/p11-kit/releases/download/${prelude.showVersion
-                                                                         v}/p11-kit-${prelude.showVersion
-                                                                                        v}.tar.gz"
+              let versionString = prelude.showVersion v
+
+              in  "https://github.com/p11-glue/p11-kit/releases/download/${versionString}/p11-kit-${versionString}.tar.xz"
           , pkgDeps =
             [ prelude.lowerBound { name = "libffi", lower = [ 3, 0, 0 ] }
             , prelude.unbounded "libtasn1"
@@ -1123,6 +1136,7 @@
         ⫽ { pkgUrl =
               "https://ftp.gnu.org/gnu/readline/readline-${prelude.showVersion
                                                              v}.tar.gz"
+          , pkgBuildDeps = [ prelude.unbounded "make" ]
           }
 
 let pixman =
@@ -1550,7 +1564,7 @@
               , configureCommand = ninjaConfigure
               , buildCommand = prelude.doNothing
               , installCommand = ninjaInstall
-              , pkgBuildDeps = [ prelude.unbounded "python2" ]
+              , pkgBuildDeps = [ prelude.unbounded "python3" ]
               }
 
 let fontconfig =
@@ -1600,7 +1614,7 @@
         ⫽ { pkgUrl =
               "https://github.com/fribidi/fribidi/releases/download/v${prelude.showVersion
                                                                          v}/fribidi-${prelude.showVersion
-                                                                                        v}.tar.bz2"
+                                                                                        v}.tar.xz"
           }
 
 let gobject-introspection =
@@ -1621,7 +1635,6 @@
                 , prelude.unbounded "bison"
                 , prelude.unbounded "flex"
                 , prelude.unbounded "pkg-config"
-                , prelude.unbounded "glibc"
                 ]
               , pkgDeps =
                 [ prelude.lowerBound { name = "glib", lower = [ 2, 58, 0 ] } ]
@@ -1952,7 +1965,7 @@
 
         in    prelude.simplePackage { name = "re2c", version = v }
             ⫽ { pkgUrl =
-                  "https://github.com/skvadrik/re2c/releases/download/${versionString}/re2c-${versionString}.tar.gz"
+                  "https://github.com/skvadrik/re2c/releases/download/${versionString}/re2c-${versionString}.tar.xz"
               }
 
 let chickenScheme =
@@ -2410,7 +2423,7 @@
           prelude.ninjaPackage { name = "libdrm", version = v }
         ⫽ { pkgUrl =
               "https://dri.freedesktop.org/libdrm/libdrm-${prelude.showVersion
-                                                             v}.tar.bz2"
+                                                             v}.tar.xz"
           , pkgDeps =
             [ prelude.unbounded "libpciaccess", prelude.unbounded "cairo" ]
           , installCommand =
@@ -2516,9 +2529,14 @@
       λ(v : List Natural) →
           prelude.simplePackage { name = "graphviz", version = v }
         ⫽ { pkgUrl =
-              "https://graphviz.gitlab.io/pub/graphviz/stable/SOURCES/graphviz.tar.gz"
+              "https://www2.graphviz.org/Packages/stable/portable_source/graphviz-${prelude.showVersion
+                                                                                      v}.tar.gz"
           , pkgDeps = [ prelude.unbounded "perl" ]
-          , installCommand = prelude.installWithBinaries [ "bin/dot" ]
+          , installCommand =
+              λ(cfg : types.BuildVars) →
+                  prelude.installWithBinaries [ "bin/dot" ] cfg
+                # prelude.symlinkManpages
+                    [ { file = "share/man/man1/dot.1", section = 1 } ]
           }
 
 let wayland =
@@ -3578,8 +3596,8 @@
             ⫽ { pkgUrl =
                   "http://releases.llvm.org/${versionString}/cfe-${versionString}.src.tar.xz"
               , pkgSubdir = "cfe-${versionString}.src"
-              , buildCommand = slowBuild
               , pkgDeps = [ prelude.unbounded "llvm" ]
+              , buildCommand = slowBuild
               , installCommand =
                   λ(cfg : types.BuildVars) →
                       prelude.cmakeInstall cfg
@@ -3688,43 +3706,45 @@
 
 let poppler =
       λ(v : List Natural) →
-          prelude.simplePackage { name = "poppler", version = v }
-        ⫽ prelude.cmakePackage
-        ⫽ { pkgUrl =
-              "https://poppler.freedesktop.org/poppler-${prelude.showVersion
-                                                           v}.tar.xz"
-          , pkgDeps =
-            [ prelude.unbounded "fontconfig"
-            , prelude.unbounded "libopenjpeg"
-            , prelude.unbounded "libjpeg-turbo"
-            , prelude.unbounded "libjpeg"
-            , prelude.unbounded "freetype"
-            , prelude.unbounded "zlib"
-            , prelude.unbounded "libpng"
-            , prelude.unbounded "libiconv"
-            , prelude.unbounded "harfbuzz"
-            , prelude.unbounded "glib"
-            ]
-          , installCommand =
-              λ(cfg : types.BuildVars) →
-                  prelude.cmakeInstall cfg
-                # prelude.mkLDPathWrappers
-                    cfg
-                    [ "pdfdetach"
-                    , "pdffonts"
-                    , "pdfimages"
-                    , "pdfinfo"
-                    , "pdfseparate"
-                    , "pdfsig"
-                    , "pdftocairo"
-                    , "pdftohtml"
-                    , "pdftoppm"
-                    , "pdftops"
-                    , "pdftotext"
-                    , "pdfunite"
-                    ]
-          }
+        let versionString = "20.09.0"
 
+        in    prelude.simplePackage { name = "poppler", version = v }
+            ⫽ prelude.cmakePackage
+            ⫽ { pkgUrl =
+                  "https://poppler.freedesktop.org/poppler-${versionString}.tar.xz"
+              , pkgSubdir = "poppler-${versionString}"
+              , pkgDeps =
+                [ prelude.unbounded "fontconfig"
+                , prelude.unbounded "libopenjpeg"
+                , prelude.unbounded "libjpeg-turbo"
+                , prelude.unbounded "libjpeg"
+                , prelude.unbounded "freetype"
+                , prelude.unbounded "zlib"
+                , prelude.unbounded "libpng"
+                , prelude.unbounded "libiconv"
+                , prelude.unbounded "harfbuzz"
+                , prelude.unbounded "glib"
+                ]
+              , installCommand =
+                  λ(cfg : types.BuildVars) →
+                      prelude.cmakeInstall cfg
+                    # prelude.mkLDPathWrappers
+                        cfg
+                        [ "pdfdetach"
+                        , "pdffonts"
+                        , "pdfimages"
+                        , "pdfinfo"
+                        , "pdfseparate"
+                        , "pdfsig"
+                        , "pdftocairo"
+                        , "pdftohtml"
+                        , "pdftoppm"
+                        , "pdftops"
+                        , "pdftotext"
+                        , "pdfunite"
+                        ]
+              }
+
 let tesseract =
       λ(v : List Natural) →
           prelude.simplePackage { name = "tesseract", version = v }
@@ -3883,10 +3903,7 @@
           prelude.makeGnuExe { name = "make", version = v }
         ⫽ { pkgUrl =
               "https://ftp.wayne.edu/gnu/make/make-${prelude.showVersion
-                                                       v}.tar.bz2"
-          , configureCommand =
-              prelude.configureWithPatch
-                ./patches/make.patch sha256:56f3260d302d1ecd0173ab6e5ccc0e4806fb8f0bc6aa68a1d7ef4fca77d85572 as Text
+                                                       v}.tar.lz"
           , buildCommand =
               λ(cfg : types.BuildVars) →
                 [ prelude.call
@@ -4104,7 +4121,7 @@
 
         in    prelude.simplePackage { name = "r", version = v }
             ⫽ { pkgUrl =
-                  "https://cran.r-project.org/src/base/R-4/R-${versionString}.tar.gz"
+                  "https://repo.miserver.it.umich.edu/cran/src/base/R-4/R-${versionString}.tar.gz"
               , pkgSubdir = "R-${versionString}"
               , pkgDeps =
                 [ prelude.unbounded "readline"
@@ -4316,7 +4333,7 @@
 
         in    prelude.simplePackage { name = "ghc", version = v }
             ⫽ { pkgUrl =
-                  "https://downloads.haskell.org/~ghc/${versionString}/ghc-${versionString}-x86_64-deb9-linux.tar.xz"
+                  "https://downloads.haskell.org/~ghc/${versionString}/ghc-${versionString}-x86_64-deb10-linux.tar.xz"
               , buildCommand = prelude.doNothing
               }
 
@@ -4625,6 +4642,7 @@
                           }
                       )
                   , prelude.symlinkBinary "opt/schily/bin/star"
+                  , prelude.symlinkBinary "opt/schily/bin/spax"
                   ]
                 # prelude.symlinkManpages
                     [ { file = "opt/schily/share/man/man1/star.1", section = 1 }
@@ -4710,36 +4728,161 @@
                     [ { file = "share/man/man1/tarlz.1", section = 1 } ]
           }
 
+let lzo =
+      λ(v : List Natural) →
+          prelude.simplePackage { name = "lzo", version = v }
+        ⫽ { pkgUrl =
+              "http://www.oberhumer.com/opensource/lzo/download/lzo-${prelude.showVersion
+                                                                        v}.tar.gz"
+          , pkgBuildDeps = [ prelude.unbounded "binutils" ]
+          }
+
+let rlwrap =
+      λ(v : List Natural) →
+        let versionString = prelude.showVersion v
+
+        in    prelude.simplePackage { name = "rlwrap", version = v }
+            ⫽ { pkgUrl =
+                  "https://github.com/hanslub42/rlwrap/releases/download/v${versionString}/rlwrap-${versionString}.tar.gz"
+              }
+
+let guile =
+      λ(v : List Natural) →
+          prelude.simplePackage { name = "guile", version = v }
+        ⫽ { pkgUrl =
+              "https://ftp.gnu.org/gnu/guile/guile-${prelude.showVersion
+                                                       v}.tar.gz"
+          , pkgDeps = [ prelude.unbounded "unistring", prelude.unbounded "gc" ]
+          }
+
+let libgit2 =
+      λ(v : List Natural) →
+          prelude.simplePackage { name = "libgit2", version = v }
+        ⫽ prelude.cmakePackage
+        ⫽ { pkgUrl =
+              let versionString = prelude.showVersion v
+
+              in  "https://github.com/libgit2/libgit2/releases/download/v${versionString}/libgit2-${versionString}.tar.gz"
+          }
+
+let bytestructures =
+      λ(v : List Natural) →
+          prelude.simplePackage { name = "bytestructures", version = v }
+        ⫽ { pkgUrl =
+              let versionString = prelude.showVersion v
+
+              in  "https://github.com/TaylanUB/scheme-bytestructures/releases/download/v${versionString}/bytestructures-${versionString}.tar.gz"
+          , pkgDeps = [ prelude.unbounded "guile" ]
+          }
+
+let guile-git =
+      λ(v : List Natural) →
+          prelude.simplePackage { name = "guile-git", version = v }
+        ⫽ { pkgUrl =
+              let versionString = prelude.showVersion v
+
+              in  "https://gitlab.com/guile-git/guile-git/uploads/4c563d8e7e1ff84396abe8ca7011bcaf/guile-git-${versionString}.tar.gz"
+          , pkgDeps =
+            [ prelude.unbounded "guile"
+            , prelude.unbounded "bytestructures"
+            , prelude.unbounded "libgit2"
+            ]
+          }
+
+let guile-json =
+      λ(v : List Natural) →
+          prelude.simplePackage { name = "guile-json", version = v }
+        ⫽ { pkgUrl =
+              "http://download.savannah.gnu.org/releases/guile-json/guile-json-${prelude.showVersion
+                                                                                   v}.tar.gz"
+          , pkgDeps = [ prelude.unbounded "guile" ]
+          }
+
+let guileConfigure =
+      λ(cfg : types.BuildVars) →
+          [ prelude.call
+              { program = "autoreconf"
+              , arguments = [ "-i" ]
+              , environment = Some
+                [ { var = "PATH"
+                  , value =
+                          prelude.mkPathVar cfg.binDirs
+                      ++  ":/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin"
+                  }
+                , prelude.mkAclocalPath cfg.shareDirs
+                ]
+              , procDir = None Text
+              }
+          ]
+        # prelude.defaultConfigure cfg
+
+let guile-sqlite3 =
+      λ(v : List Natural) →
+          prelude.simplePackage { name = "guile-sqlite3", version = v }
+        ⫽ { pkgUrl =
+              "https://notabug.org/guile-sqlite3/guile-sqlite3/archive/v${prelude.showVersion
+                                                                            v}.tar.gz"
+          , pkgSubdir = "guile-sqlite3"
+          , pkgBuildDeps =
+            [ prelude.unbounded "automake"
+            , prelude.unbounded "m4"
+            , prelude.unbounded "pkg-config"
+            , prelude.unbounded "grep"
+            ]
+          , pkgDeps = [ prelude.unbounded "guile", prelude.unbounded "sqlite" ]
+          , configureCommand = guileConfigure
+          }
+
+let guile-gcrypt =
+      λ(v : List Natural) →
+          prelude.simplePackage { name = "guile-gcrypt", version = v }
+        ⫽ { pkgUrl =
+              "https://notabug.org/cwebber/guile-gcrypt/archive/v${prelude.showVersion
+                                                                     v}.tar.gz"
+          , pkgSubdir = "guile-gcrypt"
+          , pkgBuildDeps =
+            [ prelude.unbounded "texinfo"
+            , prelude.unbounded "automake"
+            , prelude.unbounded "grep"
+            , prelude.unbounded "m4"
+            , prelude.unbounded "pkg-config"
+            ]
+          , pkgDeps =
+            [ prelude.unbounded "guile", prelude.unbounded "libgcrypt" ]
+          , configureCommand = guileConfigure
+          }
+
 in  [ alsa-lib [ 1, 1, 9 ]
     , apr [ 1, 7, 0 ]
     , apr-util [ 1, 6, 1 ]
     , at-spi-atk { version = [ 2, 33 ], patch = 2 }
     , at-spi-core { version = [ 2, 33 ], patch = 2 }
     , atk { version = [ 2, 36 ], patch = 0 }
-    , ats [ 0, 4, 0 ]
+    , ats [ 0, 4, 2 ]
     , autoconf [ 2, 69 ]
     , automake [ 1, 16, 2 ]
     , babl { version = [ 0, 1 ], patch = 68 }
     , bash [ 5, 0, 17 ]
     , bash-completion [ 2, 9 ]
-    , binutils [ 2, 33, 1 ]
+    , binutils [ 2, 35, 1 ]
     , bison [ 3, 5 ]
     , blas [ 3, 8, 0 ]
     , busybox [ 1, 31, 1 ]
+    , bytestructures [ 1, 0, 7 ]
     , bzip2 [ 1, 0, 8 ]
     , cairo [ 1, 16, 0 ]
     , chickenScheme [ 5, 0, 0 ]
     , cimg [ 2, 7, 0 ]
     , clang [ 9, 0, 0 ]
     , clzip [ 1, 11 ]
-    , cmake { version = [ 3, 17 ], patch = 2 }
+    , cmake { version = [ 3, 18 ], patch = 2 }
     , cmark [ 0, 29, 0 ]
     , compositeproto [ 0, 4 ]
-    , coreutils [ 8, 31 ]
+    , coreutils [ 8, 32 ]
     , ctags [ 5, 8 ]
     , curl [ 7, 66, 0 ]
     , damageproto [ 1, 2, 1 ]
-    , dbus [ 1, 13, 12 ]
+    , dbus [ 1, 13, 18 ]
     , diffutils [ 3, 7 ]
     , dri2proto [ 2, 8 ]
     , eigen [ 3, 3, 7 ]
@@ -4758,40 +4901,45 @@
     , fossil [ 2, 10 ]
     , flex [ 2, 6, 3 ]
     , fltk [ 1, 3, 5 ]
-    , freetype-prebuild [ 2, 10, 1 ]
-    , freetype [ 2, 10, 1 ]
-    , fribidi [ 1, 0, 9 ]
+    , freetype-prebuild [ 2, 10, 2 ]
+    , freetype [ 2, 10, 2 ]
+    , fribidi [ 1, 0, 10 ]
     , gawk [ 5, 0, 1 ]
     , gc [ 8, 0, 4 ]
-    , gcc [ 10, 1, 0 ]
+    , gcc [ 10, 2, 0 ]
     , gdb [ 8, 3, 1 ]
     , gdk-pixbuf { version = [ 2, 38 ], patch = 1 }
     , gegl { version = [ 0, 4 ], patch = 16 }
-    , gettext [ 0, 20, 2 ]
+    , gettext [ 0, 21 ]
     , gexiv2 { version = [ 0, 12 ], patch = 0 }
-    , ghc [ 8, 8, 3 ]
+    , ghc [ 8, 10, 2 ]
     , gperf [ 3, 1 ]
     , gperftools [ 2, 7 ]
-    , giflib [ 5, 1, 4 ]
-    , git [ 2, 26, 2 ]
-    , glib { version = [ 2, 64 ], patch = 2 }
+    , giflib [ 5, 2, 1 ]
+    , git [ 2, 28, 0 ]
+    , glib { version = [ 2, 66 ], patch = 0 }
     , glib-networking { version = [ 2, 61 ], patch = 2 }
     , glproto [ 1, 4, 17 ]
     , glu [ 9, 0, 0 ]
     , json-glib { version = [ 1, 4 ], patch = 4 }
     , glibc [ 2, 30 ]
     , gmp [ 6, 2, 0 ]
-    , gobject-introspection { version = [ 1, 62 ], patch = 0 }
+    , gobject-introspection { version = [ 1, 66 ], patch = 0 }
     , gnome-doc-utils { version = [ 0, 20 ], patch = 10 }
     , gnupg [ 2, 2, 20 ]
-    , gnutls { version = [ 3, 6 ], patch = [ 13 ] }
-    , graphviz [ 2, 40, 1 ]
-    , grep [ 3, 3 ]
+    , gnutls { version = [ 3, 6 ], patch = [ 15 ] }
+    , graphviz [ 2, 44, 1 ]
+    , grep [ 3, 5 ]
     , gsl [ 2, 6 ]
     , gtk2 { version = [ 2, 24 ], patch = 32 }
     , gtk3 { version = [ 3, 24 ], patch = 18 }
+    , guile [ 3, 0, 4 ]
+    , guile-gcrypt [ 0, 3, 0 ]
+    , guile-git [ 0, 3, 0 ]
+    , guile-json [ 4, 3, 2 ]
+    , guile-sqlite3 [ 0, 1, 2 ]
     , gzip [ 1, 10 ]
-    , harfbuzz [ 2, 6, 4 ]
+    , harfbuzz [ 2, 7, 2 ]
     , htop [ 2, 2, 0 ]
     , hugs
     , icu [ 64, 2 ]
@@ -4818,27 +4966,28 @@
     , libcds [ 2, 3, 2 ]
     , libcroco { version = [ 0, 6 ], patch = 12 }
     , libdatrie [ 0, 2, 12 ]
-    , libdrm [ 2, 4, 96 ]
+    , libdrm [ 2, 4, 102 ]
     , libepoxy [ 1, 5, 3 ]
     , libev [ 4, 25 ]
     , libevent [ 2, 1, 10 ]
     , libexif [ 0, 6, 21 ]
     , libffi [ 3, 3 ]
-    , libgcrypt [ 1, 8, 5 ]
+    , libgcrypt [ 1, 8, 6 ]
+    , libgit2 [ 1, 0, 1 ]
     , libglade { version = [ 2, 6 ], patch = 4 }
-    , libgpgError [ 1, 37 ]
-    , libICE [ 1, 0, 9 ]
+    , libgpgError [ 1, 39 ]
+    , libICE [ 1, 0, 10 ]
     , libiconv [ 1, 16 ]
     , libjpeg [ 9 ]
-    , libjpeg-turbo [ 2, 0, 4 ]
+    , libjpeg-turbo [ 2, 0, 5 ]
     , libksba [ 1, 3, 5 ]
     , libmp3lame [ 3, 100 ]
     , libmypaint [ 1, 3, 0 ]
-    , libnettle [ 3, 5, 1 ]
+    , libnettle [ 3, 6 ]
     , libogg [ 1, 3, 4 ]
     , libopenjpeg [ 2, 3, 1 ]
     , libotf [ 0, 9, 16 ]
-    , libpciaccess [ 0, 14 ]
+    , libpciaccess [ 0, 16 ]
     , libpng [ 1, 6, 37 ]
     , libpsl [ 0, 21, 0 ]
     , libpthread-stubs [ 0, 4 ]
@@ -4853,7 +5002,7 @@
     , libsoup { version = [ 2, 67 ], patch = 3 }
     , libspng [ 0, 5, 0 ]
     , libssh2 [ 1, 8, 0 ]
-    , libtasn1 [ 4, 15, 0 ]
+    , libtasn1 [ 4, 16, 0 ]
     , libtiff [ 4, 0, 10 ]
     , libtool [ 2, 4, 6 ]
     , libuv [ 1, 24, 0 ]
@@ -4862,7 +5011,7 @@
     , libthai [ 0, 1, 28 ]
     , libvorbis [ 1, 3, 6 ]
     , libvpx [ 1, 8, 2 ]
-    , libX11 [ 1, 6, 8 ]
+    , libX11 [ 1, 6, 12 ]
     , libXau [ 1, 0, 9 ]
     , libXaw [ 1, 0, 13 ]
     , libXaw3d [ 1, 6, 3 ]
@@ -4877,7 +5026,7 @@
     , libXinerama [ 1, 1, 4 ]
     , libxml2 [ 2, 9, 9 ]
     , libXmu [ 1, 1, 3 ]
-    , libXpm [ 3, 5, 12 ]
+    , libXpm [ 3, 5, 13 ]
     , libXScrnSaver [ 1, 2, 3 ]
     , libxshmfence [ 1, 3 ]
     , libxslt [ 1, 1, 33 ]
@@ -4888,94 +5037,96 @@
     , libXxf86vm [ 1, 1, 4 ]
     , llvm [ 9, 0, 0 ]
     , lmdb [ 0, 9, 23 ]
-    , lua [ 5, 3, 5 ]
-    , luarocks [ 3, 2, 1 ]
+    , lua [ 5, 4, 0 ]
+    , luarocks [ 3, 3, 1 ]
     , lunzip [ 1, 11 ]
     , lz4 [ 1, 9, 2 ]
     , lzip [ 1, 21 ]
     , lziprecover [ 1, 21 ]
     , lzlib [ 1, 11 ]
+    , lzo [ 2, 10 ]
     , m17n [ 1, 8, 0 ]
     , m4 [ 1, 4, 18 ]
-    , make [ 4, 2, 1 ]
-    , mako [ 1, 0, 7 ]
+    , make [ 4, 3 ]
+    , mako [ 1, 1, 3 ]
     , markupSafe [ 1, 0 ]
     , memcached [ 1, 5, 18 ]
     , mercury
-    , mesa [ 19, 0, 5 ]
-    , meson [ 0, 51, 2 ]
+    , mesa [ 19, 0, 8 ]
+    , meson [ 0, 55, 3 ]
     , mosh [ 1, 3, 2 ]
     , motif [ 2, 3, 8 ]
     , mpc [ 1, 1, 0 ]
-    , mpfr [ 4, 0, 2 ]
+    , mpfr [ 4, 1, 0 ]
     , mpg123 [ 1, 25, 12 ]
     , musl [ 1, 1, 20 ]
     , nano [ 4, 3 ]
-    , nasm [ 2, 14 ]
+    , nasm [ 2, 15, 5 ]
     , ncurses [ 6, 2 ]
     , nginx [ 1, 15, 7 ]
-    , ninja [ 1, 9, 0 ]
-    , node [ 12, 17, 0 ]
+    , ninja [ 1, 10, 1 ]
+    , node [ 12, 18, 4 ]
     , npth [ 1, 6 ]
     , nspr [ 4, 20 ]
     , openblas [ 0, 3, 2 ]
     , opencv [ 4, 2, 0 ]
     , openssh [ 7, 9 ]
     , openssl [ 1, 1, 1 ]
-    , p11kit [ 0, 23, 16, 1 ]
+    , p11kit [ 0, 23, 21 ]
     , pango { version = [ 1, 43 ], patch = 0 }
     , pari [ 2, 11, 1 ]
-    , patch [ 2, 7 ]
+    , patch [ 2, 7, 6 ]
     , pcre [ 8, 44 ]
-    , pcre2 [ 10, 33 ]
+    , pcre2 [ 10, 35 ]
     , pdfgrep [ 2, 1, 2 ]
     , perl5 [ 5, 30, 2 ]
     , phash [ 0, 9, 6 ]
-    , pixman [ 0, 38, 4 ]
+    , pixman [ 0, 40, 0 ]
     , pkg-config [ 0, 29, 2 ]
-    , poppler [ 0, 84, 0 ]
+    , poppler [ 20, 9, 0 ]
     , postgresql [ 12, 2 ]
     , protobuf [ 3, 8, 0 ]
     , pycairo [ 1, 18, 1 ]
     , pygobject { version = [ 2, 28 ], patch = 7 }
     , pygtk { version = [ 2, 24 ], patch = 0 }
     , python [ 2, 7, 17 ]
-    , python [ 3, 8, 2 ]
-    , qrencode [ 4, 0, 2 ]
+    , python [ 3, 8, 5 ]
+    , qrencode [ 4, 1, 0 ]
     , qt { version = [ 5, 13 ], patch = 0 }
     , quazip [ 0, 8, 1 ]
-    , r [ 4, 0, 0 ]
+    , r [ 4, 0, 2 ]
     , ragel [ 6, 10 ]
     , randrproto [ 1, 5, 0 ]
-    , re2c [ 1, 1, 1 ]
+    , re2c [ 2, 0 ]
     , readline [ 8, 0 ]
     , recordproto [ 1, 14, 2 ]
     , renderproto [ 0, 11, 1 ]
+    , rlwrap [ 0, 43 ]
     , ruby { version = [ 2, 7 ], patch = 1 }
-    , rustc [ 1, 42, 0 ]
+    , rustc [ 1, 46, 0 ]
     , scour [ 0, 37 ]
     , scrnsaverproto [ 1, 2, 2 ]
     , sdl2 [ 2, 0, 10 ]
     , sed [ 4, 7 ]
     , shared-mime-info [ 1, 10 ]
     , smake [ 1, 2, 5 ]
-    , sqlite { version = [ 3, 30, 1 ] }
+    , sqlite { version = [ 3, 33, 0 ] }
     , star [ 1, 6 ]
     , subversion [ 1, 12, 2 ]
     , swig [ 3, 0, 12 ]
     , swi-prolog [ 8, 0, 3 ]
     , tar [ 1, 32 ]
-    , tarlz [ 0, 16 ]
+    , tarlz [ 0, 17 ]
     , tcc [ 0, 9, 27 ]
-    , texinfo [ 6, 6 ]
+    , texinfo [ 6, 7 ]
     , tesseract [ 4, 0, 0 ]
     , time [ 1, 9 ]
     , unistring [ 0, 9, 10 ]
     , utf8proc [ 2, 4, 0 ]
-    , util-linux { version = [ 2, 34 ] }
+    , util-linux { version = [ 2, 36 ] }
     , util-macros [ 1, 19, 2 ]
     , vala { version = [ 0, 45 ], patch = 3 }
-    , valgrind [ 3, 15, 0 ]
+    , valgrind [ 3, 16, 1 ]
     , vim [ 8, 2 ]
     , wayland [ 1, 17, 0 ]
     , wget [ 1, 20, 3 ]
diff --git a/src/Package/C/PackageSet.hs b/src/Package/C/PackageSet.hs
--- a/src/Package/C/PackageSet.hs
+++ b/src/Package/C/PackageSet.hs
@@ -17,18 +17,18 @@
 import           Data.Text.Prettyprint.Doc
 import           Data.Text.Prettyprint.Doc.Custom
 import           Data.Text.Prettyprint.Doc.Render.Text
-import           Dhall
+import           Dhall                                 hiding (maybe)
 import qualified Package.C.Dhall.Type                  as Dhall
 import           Package.C.Error
 import           Package.C.Type
 import           Package.C.Type.Tree
 
 defaultPackageSetHash :: T.Text
-defaultPackageSetHash = "sha256:a3898bfbcc705d1561ff41fc01b6eee94f3eb344f1451917c75402a9865c4cf9"
+defaultPackageSetHash = "sha256:172035e1adc2b2f0e4035e943125f6c7afb53e2e0055313709d0c4208eb83850"
 
 defaultPackageSetDhall :: Maybe String -> IO PackageSetDhall
 defaultPackageSetDhall (Just pkSet) = input auto (T.pack pkSet)
-defaultPackageSetDhall Nothing      = input auto ("https://raw.githubusercontent.com/vmchale/cpkg/c6522de9a876e1fa3141752d61bff2272d92075c/pkgs/pkg-set.dhall " <> defaultPackageSetHash)
+defaultPackageSetDhall Nothing      = input auto ("https://raw.githubusercontent.com/vmchale/cpkg/a82629bc65449b66c0ab337faaeb0d12096675f6/pkgs/pkg-set.dhall " <> defaultPackageSetHash)
 
 
 displayPackageSet :: Maybe String -> IO ()
@@ -81,6 +81,4 @@
 pkgsM :: PackId -> Maybe String -> IO (DepTree CPkg)
 pkgsM pkId pkSet = do
     pks <- pkgs pkId . packageSetDhallToPackageSet <$> defaultPackageSetDhall pkSet
-    case pks of
-        Just x  -> pure x
-        Nothing -> unfoundPackage
+    maybe unfoundPackage pure pks
