Hadrian: trace the execution of expensive Cabal calls
We use the Cabal library to parse, configure, register and copy packages, which are expensive operations that are currently not visible to Shake's profiling infrastructure. By using traced
we tell Shake to add these IO actions to the profiling report, helping us to identify performance bottlenecks.