Shimmer: the reflective lambda machine. Ben Lippmeier University of New South Wales Shimmer is a Scheme-like language intended as an intermediate representation and/or compiler target for higher level languages. To aid working with abstract syntax trees, Shimmer provides baked-in support for nominal variables and explicit substitutions. The intended use-case is to encode other languages using Higher Order Abstract Syntax (HOAS), and then write traversals using either a meta language (like Haskell), or directly as Shimmer code. Primitives are provided to break lambda abstractions and reform them, freeing the compiler engineer from the usual tedium concerning name capture and freshness. Shimmer also provides language-level, linker-like mechanisms for collecting groups of bindings, as well as an indexed binary format for storing the code — a veritable swiss-army-knife for compiler hackers. The very best part is that inclusion of the Haskell-eque ‘$’ application operator at language level frees the programmer from writing a great number of parenthesis, bringing the state of Scheme-like syntax a good 40 years forward into the present.