This blog post explains my recent work on building Haskell packages incrementally using Nix/Nixpkgs, which we're already using at work for significant build time savings.
The work is already open source in the form of two pull requests and mainly awaiting review and the post shows you how you can use that work if you don't mind living on the bleeding edge