On Fri, Jan 4, 2013 at 7:27 PM, David Thomas <[email protected]>wrote:

> 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/#comment-862

-- Kim-Ee
_______________________________________________
Haskell-Cafe mailing list
[email protected]
http://www.haskell.org/mailman/listinfo/haskell-cafe

Reply via email to