Current PatternStatement definition requires a PatternConstraint argument, which does not reflect correct structure. Furthermore we end up ignoring any pattern which is not correct, leading to potentially-missed validations.
Refactor PatternStatement to only hold the parsed argument and require that argument to compile.