srecord Channels(A[] data) { *(int n) { data = newGenericArray(n); } int channels() { ret l(data); } A get(int channel) { ret data[channel]; } void set(int channel, A a) { data[channel] = a; } A first() { ret main first(data); } A getSingleton() { assertEquals(1, channels()); ret first(); } toString { ret "Channels[" + joinWithComma(data) + "]"; } }