
On Thu, Nov 7, 2013 at 4:20 PM, Carter Schonwald
specialize only fires on functions that have type class constraints / are part of a type class. Furthermore, the function needs to be marked INLINEABLE or INLINE for specialization to work (unless the specialize pragma was written in the defining module)
Right, and I added it because I wanted to get rid of both the Vector.Generic typeclass, and the Unboxed typeclass, and it worked. I guess that's why I added INLINEABLEs too, I probably read about it in the documentation and then forgot. But if crockeea is right and it's no longer happening, that would be unfortunate. I wonder if you could write a kind of query language for core, to ask things like "are the arguments to this function unboxed?" or "how many list constructors are called here" (e.g. to check for fusion).
not sure if that helps,
It does, thanks!