table channels : {Id : int, Channel:channel xbody} fun dosend (s:string) : transaction unit = c <- oneRow1 (SELECT * FROM channels); debug ("Sending " ^ s ^ " through the channel..."); send c.Channel {[s]} fun mkchannel {} : transaction xbody = c <- channel; s <- source ; dml( DELETE FROM channels WHERE Id >= 0); dml( INSERT INTO channels(Id, Channel) VALUES(0, {[c]}) ); return