Conference contribution, 2015
When compiling EDSLs into other languages, types in the source language must be translated into corresponding types in the target language. The translation is often driven by a small set of rules that map a single type in the source language into a single type in the target language. However, this simple approach is limiting when there are multiple possible mappings, and it may lead to poor interoperability and performance in the generated code. Instead of hard-wiring a single set of translation rules into a compiler, this paper introduces a small language that lets the programmer describe the mapping of each argument and function separately.