Re-introduce polymorphic specialisation by default
Polymorphic specialisation has led to a number of hard to diagnose incorrect runtime result bugs (see #23469, #23109, #21229, #23445) so we introduced a flag `-fpolymorphic-specialisation` which allows users to turn on this experimental optimisation if they are willing to buy into things going very wrong.
```
commit 9f01d14b5bc1c73828b2b061206c45b84353620e
Author: Matthew Pickering <matthewtpickering@gmail.com>
Date: Mon Jun 26 10:37:55 2023 +0100
Add -fpolymorphic-specialisation flag (off by default at all optimisation levels)
Polymorphic specialisation has led to a number of hard to diagnose
incorrect runtime result bugs (see #23469, #23109, #21229, #23445) so
this commit introduces a flag `-fpolymorhphic-specialisation` which
allows users to turn on this experimental optimisation if they are
willing to buy into things going very wrong.
```
But polymorphic specialisation is a Very Good Thing: see `Note [Specialising polymorphic dictionaries]` in Specialise.hs
This ticket tracks progress on switching it on by-default again.
We have a MR in progress, !10479, that allegedly fixes the unsound-ness. Just need to get it landed! It tickles some Simplifier infelicities, which in turn leasds to compile-time regressions, so I'm fixing them first: #23745, #23627.
Things to check
* Check that the regressions reported in #23791 go away.
* #23109
* #23469
* #24606
* #25720
* #21229
issue