Adventures in Pattern Matching