use pattern-matching4j