This triplet come hand by hand whenever I start to do something non-trivial. A few examples I encounter from time to time:

  • ghc - ghc --make - cabal
  • clang - make - aptitude

This is quite inspiring asking those questions. Maybe it’s time to design all three of them together so that some really hard issues could finally be resolved.

ghc has already taken the approach of combing the first two together, and user experience is indeed much more pleasant.