One of the cool recent projects I've gotten to work on at my job is a GHC plugin that exports fine-grained timings for a Haskell build
I'm still polishing this up (and I'll open source it and do a proper announcement post when it's ready), but here is a teaser which shows how it gives not only module-level build timings but also phase-level build timings, too!
You can track my progress on the open telemetry GHC plugin at this repository:
Right now it only supports GHC 9.6 (because that's what we use at work) and only once the release is imminent will I add support for older GHC versions (because that will entail a lot of code duplication due to GHC API churn).