Diffusion in Haskell