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.B
The 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