Lightweight Higher-Order Rewriting in Haskell [chapter]

Emil Axelsson, Andrea Vezzosi
2016 Lecture Notes in Computer Science  
We present a generic Haskell library for expressing rewrite rules with a safe treatment of variables and binders. Both sides of the rules are written as typed EDSL expressions, which leads to syntactically appealing rules and hides the underlying term representation. Matching is defined as an instance of Miller's higher-order pattern unification and has the same complexity as first-order matching. The restrictions of pattern unification are captured in the types of the library, and we show by
more » ... ample that the library is capable of expressing useful simplifications that might be used in a compiler.
doi:10.1007/978-3-319-39110-6_1 fatcat:2afb2y2pb5db7pkt4z4mgwtiva