Inconsistent naming of specialized functions in Core
For a method meth
in class Foo a
, when a
is specialized to A
in Core, the name of the method is sometimes $fFooA_$cmeth
, and sometimes something like $fFooA3
.
Also, when Foo
has a subclass, say Foo a => Bar a
, sometimes the name of the method becomes $fBarA_$meth
.
So there are multiple different namings of the same method. This can make writing Core plugins more difficult. For example, among other things, it makes it more difficult to detect whether a function is recursive. I've encountered cases where $fFooA_$cmeth
is recursive, but its unfolding contains $fFooA3
rather than $fFooA_$cmeth
.
Is it possible to make such naming consistent?