Haskell isn't usually a language known for C++-style design patterns. Here's one counter-example, showing how to structure your applications.