A Typed Pattern Calculus