Hey, I'm building some private Haskell packages. Package1 depends on 'a ver0'. Package2 depends on 'a ver1' and 'Package1'. How do I build Package2 so that I can use functions exposed from the Package1 module? *Current setup:* ``` let config = { allowUnfree = true; packageOverrides = pkgs: rec { haskellPackages = pkgs.haskellPackages.override { overrides = haskellPackagesNew: haskellPackagesOld: rec { package1 = haskellPackagesNew.callPackage ./nix/package1.nix { }; package2 = haskellPackagesNew.callPackage ./cabal.nix { inherit package1; }; }; }; }; }; pkgs = import { inherit config; }; in { package2 = pkgs.haskellPackages.package2; } ``` Where "./nix/package1.nix" and "./cabal.nix" are just generated from `cabal2nix`. *Current output:* ``` ... Building Package 1 ... Setup: Encountered missing dependencies: base >=4.6 && <4.9 ``` In my case package 'a' is 'base'. Clearly the nixpkgs I import has a different version of base (>4.10), which is the correct version for 'Package2' but not 'Package1'. Are these packages fundamentally not composable?