On Wed, Jan 29, 2014 at 3:32 AM, Jon Harrop 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