On Wed, Jan 29, 2014 at 3:32 AM, Jon Harrop <jon@ffconsultancy.com> wrote:
Yotam wrote:
> Of course, once you unbox, all parametric polymorphism is lost

Is it?


It is in haskell. In general, I don't think you can do any parametric polymorphism without metadata.
 
You would have to box the tuple before passing it to a polymorphic function
with the type 'a -> 'a. However, if the function has the type 'a * 'b -> 'b
* 'a then you could always unbox, right?


I don't think so. Without metadata, how do you know where one tuple member ends and another begins?

Yotam