Heather is an general-purpose multiparadigm programming language. It is strongly typed, offering type inference and parametric polymorphism ("generics"). It is consequently object oriented (everything is a object, even functions), while its consequent multiple dispatch approach keeps a strong functional touch. The object model is class-oriented, supporting multiple inheritance as well as the
separation of types ("protocols", "interfaces") and classes.
The grammar is regular, small, and context free. In particular it can be parsed without symbol tables, and does not require a special preprocessor since it offers powerful hygienic macros as part of the language and special support for conditional compilation.