import Data.IORef data IORef a -- abstrakt newIORef :: a -> IO (IORef a) readIORef :: IORef a -> IO a writeIORef :: IORef a -> a -> IO ()
while :: IO Bool -> IO () -> IO ()