Earlier quoted context omitted.
stack for haskell nix package manager
Note that npm also supports having multiple versions of the same package installed just fine. The problem: I use X to create an object with library A v1.0. I use Y to create an object with library A v2.0. These objects are not necessarily compatible, so X and Y have problems communicating. I would be very surprised if you told me nix or stack inherently make objects from multiple versions of the same library magicall…
How would objects created from X and Y can reach each other and communicate when X is not dependent from Y or otherwise? You need global mutable state or your own code witch depends from both X and Y is somehow connecting them.
So one top thing FP movement argues against is global mutable state so of course you don't have that ...Unless you are wrapping some non-FP thing like QT...
And if it's your own code it shouldn't be different that Y creates B:s instead of A v2 since your code is aware from two different versions anyway.
Do you see any weak points?