Kiev

Kiev is a programming language with a prolog-like engine, multimethods, parametrized types, closures, arithmetic types, type states and cases.