Introduction to Scalan can be found here
Scalan compilation pipeline uses a graph-based intermediate representation. The resulting graphs can be produced after each compilation stage and visualized using Graphviz. See graphical notation for details.
Metaprogramming style supported by Scalan can be found here.
Scalan can be used for automatic optimization of hotspots in Scala programs written in functional programming style. Intermediate representation, IR, of the hotspot is captured by Scalanizer plugin and optimized by domain-specific compiler developed with Scalan. See demonstration project for details.