public virtual Object[] elements() { if (arity() == 0) return null; else { Object[] res = new Object[arity()]; Array.Copy(this.elems, 0, res, 0, res.Length); return res; } }