{-# LANGUAGE BangPatterns #-}
import Control.Monad
import System.Random.MWC
import System.Random.MWC.Distributions

main = do
  withSystemRandom $ \g -> replicateM_ (300*1000) $ do
    --
    !n <- normal 0 1  g
    !n <- normal 0 2  g
    !n <- normal 3 3  g
    !n <- normal 2 4  g
    !n <- normal 2 5  g
    !n <- normal 1 6  g
    !n <- normal 3 7  g
    !n <- normal 3 8  g
    !n <- normal 3 9  g
    !n <- normal 3 10 g
    --
    !n <- normal 0 1  g
    !n <- normal 0 2  g
    !n <- normal 3 3  g
    !n <- normal 2 4  g
    !n <- normal 2 5  g
    !n <- normal 1 6  g
    !n <- normal 3 7  g
    !n <- normal 3 8  g
    !n <- normal 3 9  g
    !n <- normal 3 10 g
    --
    !n <- normal 0 1  g
    !n <- normal 0 2  g
    !n <- normal 3 3  g
    !n <- normal 2 4  g
    !n <- normal 2 5  g
    !n <- normal 1 6  g
    !n <- normal 3 7  g
    !n <- normal 3 8  g
    !n <- normal 3 9  g
    !n <- normal 3 10 g
    --
    !n <- normal 0 1  g
    !n <- normal 0 2  g
    !n <- normal 3 3  g
    !n <- normal 2 4  g
    !n <- normal 2 5  g
    !n <- normal 1 6  g
    !n <- normal 3 7  g
    !n <- normal 3 8  g
    !n <- normal 3 9  g
    !n <- normal 3 10 g
    --
    !n <- normal 0 1  g
    !n <- normal 0 2  g
    !n <- normal 3 3  g
    !n <- normal 2 4  g
    !n <- normal 2 5  g
    !n <- normal 1 6  g
    !n <- normal 3 7  g
    !n <- normal 3 8  g
    !n <- normal 3 9  g
    !n <- normal 3 10 g
    --
    return () :: IO ()
    