Type Pattern-Matching for Existential Types