structural-pattern-matching