Neat article! Coming from a Haskell background in my first post-college job, I also modeled several problems using Haskell types and later translated them into C++.<p>It felt a little silly at first, but really did help clarify my understanding of the problem domain and let me play around with composing and operating on data structures very quickly in an interactive REPL. Once I was happy with the data structures and had a good understanding of the most complicated operations over them, it was a simple task to build the analogous C++ classes.