Higher-order patterns, together with higher-order matching, enable concise specification of program transformation, and have
been implemented in several program transformation systems. However,higher-order matching in general is nondeterministic,
and the matching algorithm is so expensive that even second-order matching is NP-complete. It is orthodox to impose constraint
on the form of patterns to obtain the desirable matches satisfying certain properties such as decidability and finiteness.
In the context of unification, Miller’s higher-order patterns have a single most general unifier. We relax the restrictions in his patterns without changing determinism within the context
of matching instead of unification. As a consequence, the new class of patterns covers a wide class of useful patterns for
program transformation. The time-complexity of the matching algorithm is linear for the size of a term for a fixed pattern.
Keywords Higher-order pattern matching - Functional programming - Program derivation - Program transformation - Fusion transformation