On Thu, 23 Feb 2006, Frédéric Gava wrote: > But where tag could represent information both int*int and (int*int) which > is the same things (modulo an indirection which could be deleted at > pattern-mathching). Morever, as Jon points of, variant types do not have > this curious things due to boxed values... Variant types always box. They always have the reference. I understand you're arguing that type constructors should work the same way. Well, maybe they should have. I'm not sure I'd like it if that was changed now, however. Working code wouldn't cease to work- it'd just be less memory efficient. But you'd always have the extra reference, even if you didn't need it. Brian