never executed always true always false
    1 module Reanimate.Parameters
    2   ( Raster(..)
    3   , Width
    4   , Height
    5   , FPS
    6   , pRaster
    7   , pFPS
    8   , pWidth
    9   , pHeight
   10   , pNoExternals
   11   , pRootDirectory
   12   , setRaster
   13   , setFPS
   14   , setWidth
   15   , setHeight
   16   , setNoExternals
   17   , setRootDirectory
   18   ) where
   19 
   20 import System.IO.Unsafe
   21 import Data.IORef
   22 
   23 type Width = Int
   24 type Height = Int
   25 type FPS = Int
   26 
   27 data Raster
   28   = RasterNone
   29   | RasterAuto
   30   | RasterInkscape
   31   | RasterRSvg
   32   | RasterMagick
   33   deriving (Show, Eq)
   34 
   35 {-# NOINLINE pRasterRef #-}
   36 pRasterRef :: IORef Raster
   37 pRasterRef = unsafePerformIO (newIORef RasterNone)
   38 
   39 {-# NOINLINE pRaster #-}
   40 pRaster :: Raster
   41 pRaster = unsafePerformIO (readIORef pRasterRef)
   42 
   43 setRaster :: Raster -> IO ()
   44 setRaster = writeIORef pRasterRef
   45 
   46 {-# NOINLINE pFPSRef #-}
   47 pFPSRef :: IORef FPS
   48 pFPSRef = unsafePerformIO (newIORef 0)
   49 
   50 {-# NOINLINE pFPS #-}
   51 pFPS :: FPS
   52 pFPS = unsafePerformIO (readIORef pFPSRef)
   53 
   54 setFPS :: FPS -> IO ()
   55 setFPS = writeIORef pFPSRef
   56 
   57 {-# NOINLINE pWidthRef #-}
   58 pWidthRef :: IORef FPS
   59 pWidthRef = unsafePerformIO (newIORef 0)
   60 
   61 {-# NOINLINE pWidth #-}
   62 pWidth :: Width
   63 pWidth = unsafePerformIO (readIORef pWidthRef)
   64 
   65 setWidth :: Width -> IO ()
   66 setWidth = writeIORef pWidthRef
   67 
   68 
   69 {-# NOINLINE pHeightRef #-}
   70 pHeightRef :: IORef FPS
   71 pHeightRef = unsafePerformIO (newIORef 0)
   72 
   73 {-# NOINLINE pHeight #-}
   74 pHeight :: Height
   75 pHeight = unsafePerformIO (readIORef pHeightRef)
   76 
   77 setHeight :: Height -> IO ()
   78 setHeight = writeIORef pHeightRef
   79 
   80 {-# NOINLINE pNoExternalsRef #-}
   81 pNoExternalsRef :: IORef Bool
   82 pNoExternalsRef = unsafePerformIO (newIORef False)
   83 
   84 {-# NOINLINE pNoExternals #-}
   85 pNoExternals :: Bool
   86 pNoExternals = unsafePerformIO (readIORef pNoExternalsRef)
   87 
   88 setNoExternals :: Bool -> IO ()
   89 setNoExternals = writeIORef pNoExternalsRef
   90 
   91 {-# NOINLINE pRootDirectoryRef #-}
   92 pRootDirectoryRef :: IORef FilePath
   93 pRootDirectoryRef = unsafePerformIO (newIORef (error "root directory not set"))
   94 
   95 {-# NOINLINE pRootDirectory #-}
   96 pRootDirectory :: FilePath
   97 pRootDirectory = unsafePerformIO (readIORef pRootDirectoryRef)
   98 
   99 setRootDirectory :: FilePath -> IO ()
  100 setRootDirectory = writeIORef pRootDirectoryRef