@@ -26,3 +26,30 @@
2626 Put static, shared, and profiled library variants into separate output so
2727 that we can build everything without forcing users to download all that stuff
2828 if they just want the regular build.
29+* TODO Write a =ghcWithPackages= combinator to create conglomerate workspaces
30+
31+ Thomas Strobel <thomas@strobel.eu> suggested this:
32+
33+ I want to hack on a set of libraries, say transformers and mtl, and I'd like
34+ to do that in an environment that contains criterion, QuickCheck, etc. So I
35+ run
36+
37+ stackWithPackages (hp: {
38+ sources = with hp; [transformers mtl];
39+ env = with hp; [criterion QuickCheck];
40+ })
41+
42+ This should create a conglomerate workspace / nix-shell environment that
43+ contains the source code for transformers and lens in subdirectories plus a
44+ stack.yaml file that builds them both:
45+
46+ stack.yaml
47+ mtl / ...
48+ transformers ...
49+
50+ The environment would contain a GHC with criterion and QuickCheck registered
51+ in appropriate LTS versions so that the stack builds don't compile anything
52+ except the packages I'm hacking on.
53+
54+ The value of env could possibly be auto-determined from the dependencies of
55+ transformers and mtl.