A functional language written entirely in C++ templates