destruct: remove unused subpatterns from generated branches