using System; class Cons { public T car; public U cdr; public Cons (T x, U y) { car = x; cdr = y; } public override String ToString () { return "(" + car + '.' + cdr + ')'; } } class List : Cons> { public List (A value) : base(value, null) { } public List (A value, List next) : base(value, next) { } public void zip (List other) { cdr.zip (other.cdr); } } abstract class Test { public static void Main (String[] args) { List list = new List (3); Console.WriteLine (list); } }