Found this to be an enjoyable and thorough overview of MLPolyR, a language created for a PL course that goes all-out on various dimensions of row polymorphism, resulting in a small yet powerful language. (previously)

A logic programming language with potential software engineering benefit is described. The language is intended as a specification language where the user specifies software functionality while ignoring efficiency. The goals of the language are: (1) a pure specification language â€“ â€œwhat, not howâ€, (2) small size, and (3) a metalanguage â€“ able to imitate and thus subsume other languages. The language, called â€œaxiomatic languageâ€, is based on the idea that any function or program can be defined by an infinite set of symbolic expressions that enumerates all possible inputs and the corresponding outputs. The language is just a formal system for generating these symbolic expressions. Axiomatic language can be described as pure, definite Prolog with Lisp syntax, HiLog higher-order generalization, and â€œstring variablesâ€, which match a string of expressions in a sequence.

Axiomatic language requires solving the difficult problem of automatic synthesis of efficient programs from specifications. Is there any hope for this?