WYRL: working on formalising and documenting the abstract approach to implementing rewriters.