@C0 = (* (a a))
@C1 = ((a b) (a b))
@C2 = ({3 (a b) (c a)} (c b))
@Cons = (a (b ((a (b c)) (* c))))
@Nil = (* (a a))
@Queue.add = (a ((((a (b c)) c) d) (b d)))
@Queue.new = (a a)
@Queue.rem = ((a ((b (c ((b ((a c) d)) d))) e)) e)
@main = a
& @Queue.rem ~ (b ((* (c d)) a))
& @Queue.rem ~ (c ((* (e f)) d))
& @Queue.rem ~ (e ((* (* g)) f))
& @Cons ~ (@C0 (h g))
& @Cons ~ (@C1 (i h))
& @Cons ~ (@C2 (@Nil i))
& @Queue.add ~ (@C2 (j b))
& @Queue.add ~ (@C1 (k j))
& @Queue.add ~ (@C0 (@Queue.new k))