haskell particle simulator