srecord noeq ListFromFunction(int n, IF1 f) extends RandomAccessAbstractList { public int size() { ret n; } public A get(int i) { ret f.get(i); } } static L listFromFunction(int n, IF1 f) { ret new ListFromFunction(n, f); } static L lambdaMapLike listFromFunction(IF1 f, int n) { ret new ListFromFunction(n, f); }