using Nemerle.Diagnostics; [Record] class Gen ['a] { x : 'a; y : Gen ['a]; } [Record] class Fla { x : object; y : Fla; } module Test { public AllocGen () : void { mutable acc = null; for (mutable i = 0; i < 1000000; i++) acc = Gen ("abc", acc); } public AllocFla () : void { mutable acc = null; for (mutable i = 0; i < 1000000; i++) acc = Fla ("abc", acc); } } time Test.AllocGen (); time Test.AllocFla ();