moving PrecedencePattern to its own package.