Clone from Jon Skeet's Clojure in C# demo