declare fun {NewQueue} Given GivePort={NewPort Given} Taken TakePort={NewPort Taken} in Given=Taken queue(put:proc {$ X} {Send GivePort X} end get:proc {$ X} {Send TakePort X} end) end