An adventure in programming language design