  Concurrent pattern calculus (CPC) drives interaction between processes by
comparing data structures, just as sequential pattern calculus drives
computation. By generalising from pattern matching to pattern unification,
interaction becomes symmetrical, with information flowing in both directions.
CPC provides a natural language to express trade where information exchange is
pivotal to interaction. The unification allows some patterns to be more
discriminating than others; hence, the behavioural theory must take this aspect
into account, so that bisimulation becomes subject to compatibility of
patterns. Many popular process calculi can be encoded in CPC; this allows for a
gain in expressiveness, formalised through encodings.
