A Haskell framework for (parallel) Monte Carlo simulations