haskell-modules: implement overrideScope method for deep overriding
haskell-modules: implement overrideScope method for deep overriding

deepOverride turns out to be completely unfeasible for non-trivial overrides.
Nix evaluates for an eternity, and then comes back saying:

  Too many heap sections: Increase MAXHINCR or MAX_HEAP_SECTS
  nix-instantiate killed by signal 6

The hand-written deep-override, on the other hand, performs the job in a
fraction of a second, no problem.

All bow to Russell O'Connor!

NixOS/nixpkgs,SymbiFlow/nixpkgs,NixOS/nixpkgs,NixOS/nixpkgs,NixOS/nixpkgs,triton/triton,triton/triton,NixOS/nixpkgs,NixOS/nixpkgs,NixOS/nixpkgs,NixOS/nixpkgs,SymbiFlow/nixpkgs,SymbiFlow/nixpkgs,NixOS/nixpkgs,SymbiFlow/nixpkgs,NixOS/nixpkgs,SymbiFlow/nixpkgs,NixOS/nixpkgs,SymbiFlow/nixpkgs,SymbiFlow/nixpkgs,SymbiFlow/nixpkgs,triton/triton,SymbiFlow/nixpkgs,triton/triton,NixOS/nixpkgs,NixOS/nixpkgs,NixOS/nixpkgs,triton/triton,NixOS/nixpkgs,SymbiFlow/nixpkgs,SymbiFlow/nixpkgs,triton/triton,SymbiFlow/nixpkgs,triton/triton,triton/triton,SymbiFlow/nixpkgs