Pattern matching is hard.