
1, Just to clarify, there are no actual known uses for a TypeRep-polymorphic ($), right? I thought I saw someone say that. 2, ($) has had a fib in its type for a very long time, but did it ever hurt anyone? The closest I saw was a generalized concern about it being bad when people report a bug and then hear that things are more general than they thought and I guess this makes their bug not a bug or something? Results in some confusing back-and-forth? It would be nice to get more specific about how much trouble the ($) lie has caused. 3, Is anything other than ($) TypeRep-polymorphic? If 2 is "not very much", an obvious solution is to keep lying and not worry about it. But clearly someone had a reason strong enough to make this change... what was it? If 1 is "maybe not" then an obvious solution is to just make ($) not TypeRep-polymorphic. I can't imagine that not being able to use ($) is a serious problem if you're working with # types, given that there are already tons of other restrictions. I hesitate to get distracted from the specifics, but I agree with Ben Lippemeier in that I like how haskell doesn't make me worry about boxed vs. unboxed. I'm not saying one little type annotation on one operator is suddenly making me worry since I've never even thought to run :t ($). But I'm happy that # is mostly off in its own little corner and you don't even have to know it exists until you need to get into low level optimization.