_self: super: let
  inherit (import ./Constants.nix) ghcCompiler;

  buildCabal = sel: name: sel.callCabal2nix name super.sources.${name} {};
in rec {
  haskell =
    super.haskell
    // {
      packages =
        super.haskell.packages
        // {
          "${ghcCompiler}" =
            super.haskell.packages."${ghcCompiler}".override
            (_old: {
              overrides = with super.pkgs.haskell.lib;
                sel: sup:
                  super.overridePinnedDeps (buildCabal sel)
                  // {
                    ap-normalize = dontCheck sup.ap-normalize;
                    clay = doJailbreak sup.clay;
                    cmark = doJailbreak sup.cmark;
                    docopt = buildCabal sel "docopt";
                    filelock = dontCheck sup.filelock;
                    linear-generics = doJailbreak sup.linear-generics;
                    req = doJailbreak sup.req;
                    servant-auth = doJailbreak sup.servant-auth;
                    servant-auth-server = dontCheck sup.servant-auth-server;
                    shellcheck = doJailbreak sup.shellcheck;
                    string-qq = doJailbreak sup.string-qq;
                    syb-with-class = doJailbreak sup.syb-with-class;
                    th-abstraction = doJailbreak sup.th-abstraction;
                  };
            });
        };
    };

  ormolu = super.haskellPackages.ormolu;
}