Switch to higher-order functions for matcher creation