Author: Kevin McIsaac
PM is a general pattern matcher similar in style to those found in systems such as SMP and Mathematica.