-
Simon Peyton Jones authored
This was a subtle one (Trac #4903). See Note [Glom the bindings if imported functions are specialised] in Speclialise. Fundamentally, a specialised binding for an imported Id was being declared non-recursive, whereas in fact it can become recursive via a RULE. Once it's specified non-recurive the OccAnal pass treats that as gospel -- and that in turn led to infinite inlining. Easily fixed by glomming all the specialised bindings in a Rec; now the OccAnal will sort them out correctly.
869984cd