Lily is a programming language that's been under development for several years. Lily is statically-typed, with an interpreter as a reference. Lily uses reference counting for memory management with garbage collection as a fallback.

Key features of Lily:

Built-in template mode

Embed/extend in C

Single-inheritance classes

Exceptions

Generics

Algebraic data types (with Option and Result predefined).

Here's a small example showing most of Lily's features: