(id,id,id) :: (a3 -> a3, a2 -> a2, a1 -> a1)
(id,id,id) :: (a2 -> a2, a1 -> a1, a -> a)
The branch (wip/T12382) has two patches, one that recators tidyType to look at
all forall'ed variables at once, and one to improve the actual renaming.
perf.haskell.org show now performance regressions. One test case exhibits
higher peak usage due to the first(!) patch, but peak usage is anyways not very
reliable, is it?