Distinguish variables and data constructors in pattern matching