Hope is a small functional programming language, with strong polymorphic typing, algebraic types, pattern matching, and higher-order functions. It has lazy semantics.