Does your language have native tuple destructuring syntax?
The ignore example is just p1 <* p2 in Haskell (that operator is in the standard library).