let overrides = { lib, mylib }: self: super: mylib.mapNixDir (path: self.callPackage path {}) [ ./. ] // { }; in self: super: let inherit (super) lib mylib; in { haskell = super.haskell // { packages = lib.mapAttrs (name: value: if builtins.hasAttr "override" value then value.override (old: { overrides = lib.composeExtensions (old.overrides or (_: _: { })) (overrides { inherit lib mylib; }); }) else value ) super.haskell.packages; }; haskellPackages = super.haskellPackages.override (old: { overrides = lib.composeExtensions (old.overrides or (_: _: { })) (overrides { inherit lib mylib; }); }); }