module Despair ( despairQuote , despair ) where import Control.Exception import System.Random (randomRIO) weakQuotes :: [String] weakQuotes = [ " This is the way the world ends. Not with a bang but a whimper. ", " Heaven Conceal ", " I have long since closed my eyes... My only goal is in the darkness. ", " I want you to feel pain, to think about pain, to accept pain, to know pain. ", " To hope for nothing, to expect nothing, to demand nothing. This is analytical despair. ", " Hope is a gift we give ourselves in our darkest despair. ", " Pain to the world ", " Despair wishes their hope diminishes. ", " Some stories end in despair, some begin there ", " When You're Going Through the Hell, Just Keep Going ", " There is no love of life without despair of life. ", " When all else is lost, the future still remains ", " My life is a perfect graveyard of buried hopes. ", "It is not despair, for despair is only for those who see the end beyond all doubt. We do not", " Schizophrenia cannot be understood without understanding despair ", " To be Despair. It is a portrait. Only close your eyes and feel. ", " Sadness is the ambrosia of all art. ", " You can't truly heal from a loss until you allow yourself to really FEEL the loss. ", " I can't shove the dark out of my way. ", " THERE IS NO LIGHT NO HOPE THERE IS ONLY DESPAIR!!! " ] despairQuote :: IO String despairQuote = randomRIO (0, length weakQuotes - 1) >>= return . (weakQuotes !!) despair :: IO() -> IO() despair = bracket_ ( despairQuote >>= \q -> let cutLen = length $ takeWhile (== ' ') q startQ = drop cutLen q in putStrLn startQ ) ( putStrLn =<< despairQuote )