 withInterval sec mapFn innerFn = mapFn $ \s -> innerFn s >> threadDelay (sec * oneSecond)  main :: IO () main = do   setTitle "Quotes"   hideCursor             -- catch ctrl+c for showCursor   qarray <- listArray' <$> splitStr '~' <$> readFile fileName   randomElemsFrom qarray <$> newStdGen >>= withInterval delay mapM_ outQ  