main :: IO ()
main
  = do  (config, nops) <- processArgs =<< getArgs
        let size        = get optSize config
            zoom        = get optZoom config
            scale       = get optScale config
            degree      = get optDegree config
            render      = run config $ makeImage size scale degree

        void . evaluate $ render (A.fromList Z [0])

        if get optBench config
           then withArgs nops $ defaultMain
                    [ bench "crystal" $ whnf render (A.fromList Z [1.0]) ]

           else G.animateInWindow
                    "Quasicrystals"
                    (size  * zoom, size * zoom)
                    (10, 10)
                    G.black
                    (frame render size zoom)
main :: IO ()
main
  = do  (config, nops) <- processArgs =<< getArgs
        let size        = get optSize config
            zoom        = get optZoom config
            scale       = get optScale config
            degree      = get optDegree config
            render      = run config $ makeImage size scale degree

        void . evaluate $ render (A.fromList Z [0])

        if get optBench config
           then withArgs nops $ defaultMain
                    [ bench "crystal" $ whnf render (A.fromList Z [1.0]) ]

           else G.animateInWindow
                    "Quasicrystals"
                    (size  * zoom, size * zoom)
                    (10, 10)
                    G.black
                    (frame render size zoom)
main
  = do  (config, nops) <- processArgs =<< getArgs
        let size        = get optSize config
            zoom        = get optZoom config
            scale       = get optScale config
            degree      = get optDegree config
            render      = run config $ makeImage size scale degree

        void . evaluate $ render (A.fromList Z [0])

        if get optBench config
           then withArgs nops $ defaultMain
                    [ bench "crystal" $ whnf render (A.fromList Z [1.0]) ]

           else G.animateInWindow
                    "Quasicrystals"
                    (size  * zoom, size * zoom)
                    (10, 10)
                    G.black
                    (frame render size zoom)