Queue(e) =def= B B =def= in(x).(C(X)--B) + empty.B C(x) =def= in(y).^i(y).C(x) + ^out(x).D D =def= o(y).C(y) + ^e.BThe operation "--" is the usual concatenation between components along the "i", "e" and "o" links.
Some students wrote the following solution, which is slightly less elegant, but still correct:
Queue(e) =def= B B =def= in(x).(C(X)--B) + empty.B C(x) =def= in(y).A + ^out(x).D A =def= ^i(y).C(x) + ^e.(C(x)--C(y)--B) D =def= o(y).C(y) + ^e.B