Yin-yang: concealing the deep embedding of DSLs
DSL Implementation in MetaOCaml, Template Haskell, and C++