driver: Check transitive closure of haskell package dependencies when deciding whether to relink
We were previously just checking whether direct package dependencies had been modified. This caused issues when compiling without optimisations as we wouldn't relink the direct dependency if one of its dependencies changed.
Fixes #23724 (closed)