diff --git a/shell.nix b/shell.nix
index b474e0029a87c9da6fcdec474f80089c1aa05a2c..72dc0e0a4a5103d7b226b33c06b199806e87ea6a 100644
--- a/shell.nix
+++ b/shell.nix
@@ -1,6 +1,9 @@
-{ pkgs ? import <nixpkgs> { } }:
-pkgs.mkShell {
-  buildInputs = [
-    pkgs.stack
-  ];
-}
+# shell.nix
+let
+  project = import ./default.nix;
+in
+  project.shellFor {
+    # Prevents cabal from choosing alternate plans, so that
+    # *all* dependencies are provided by Nix.
+    exactDeps = true;
+  }