Dr Jekyll and Mr C

The Jekyll Programming Language

Jekyll is a high level programming language that can be translated
both to and from human readable, human editable C. Not only can the
C version of a file be generated from the Jekyll version, but the
Jekyll version can be generated from the C version. By being inter-
convertible with C, Jekyll removes the need for companies to take the
risk of moving their projects to a new language. A program can be ported
to Jekyll one file at a time, or one programmer at a time. If the Jekyll
compiler ceases to be available, or a tool doesn’t support Jekyll, or a
programmer doesn’t understand Jekyll, this is not a problem as one can
just use the C code. Jekyll enhances C with many high level features,
including safety, generic types, stack allocated lambda expressions,
and type classes. All features have been carefully designed so that they
map elegantly to and from C.

It allows statically resolved generics as well as dynamic dispatch. Too
bad about the C-like syntax ;-)