The Magpie programming language