Great concept. This is kind of similar to an editor we've been talking about for Overtone. How about,
* allow for render plugin functions so values can be rendered with images, rendered canvases, control elements, etc.
* treat the AST as the primary data for each function or form, and then make the source code one of multiple renderings of the data.
- makes paredit type manipulations just operations on the ast
- allow for decorating the ast with additional data, which can be rendered with plugins (for example, heat-up regions of code as a profiler runs)