Why does SpecConstr run far later than specialisation

Matthew Pickering matthewtpickering at gmail.com
Tue Mar 20 13:23:41 UTC 2018


As far as I understand it, the goals of SpecConstr and specialisation
are the same. One works for
normal value arguments and one works for special type class dictionary
arguments.

However, looking at the pass order in `SimplCore`, specialisation runs
very early before any major simplification but SpecConstr runs very
late right at the end of the pipeline.

Does anyone know the justification for this? It seems intuitively that
they should work in the same
way.

Cheers,

Matt


More information about the ghc-devs mailing list