thélesma ::= particle | binding (particle). thélesma | (thélesma 1) @ (thélesma 2) | (particle 1, particle 2)
particle ::= any particle | thélesma

interaction (particle 1, particle 2) =
    if particle 1 is not thélesma and particle 2 is not thélesma then
        (particle 1, particle2)
    else
        (particle 1) @ (particle 2)