  The trie data structure is a good choice for finite maps whose keys are data
structures (trees) rather than atomic values. But what if we want the keys to
be patterns, each of which matches many lookup keys? Efficient matching of this
kind is well studied in the theorem prover community, but much less so in the
context of statically typed functional programming. Doing so yields an
interesting new viewpoint -- and a practically useful design pattern, with good
runtime performance.
