
On Fri, Jan 4, 2013 at 7:27 PM, David Thomas
Well, "hidden" - it *is* right there in the type signature still, it just doesn't *look* like an argument.
If you squint hard enough, (=>) looks like (->). Or maybe the other way round. Whatever. :)
It also might be optimized away in static cases (certainly, it *could* happen, whether does or is even worthwhile is another question).
The optimization at stake is specialization. Given (Num a => a), specialize it to Int or Double or X so that it's memoizably first-class, which is where functions still fall down [1]. All functions are values but data values still play nicer than others. Isn't fixing this the real cure for the monomorphism restriction? [1] http://lukepalmer.wordpress.com/2009/07/07/emphasizing-specialization/#comme... -- Kim-Ee