Pattern Match Analysis for Higher-Order Languages (version 3)