The SEdit structure editor of Medley Interlisp lets you also modify arbitrary list structures and data, not just Lisp code. In this example the ED function calls SEdit and returns the modified object.