{-# LANGUAGE TypeOperators #-} import Data.Array.Parallel.Unlifted as U import TestData import System.IO import System.Environment dists :: [(String, Int -> U.Array (Double :*: Double))] dists = [("square", genPointsUniform) ,("disc", genPointsDisc)] main = do [sn,dist,file] <- getArgs let n = read sn gen = case lookup dist dists of Just f -> f Nothing -> error $ "Unknown distribution " ++ dist pts = gen n pts `seq` return () h <- openBinaryFile file WriteMode U.hPut h pts hClose h