module AlexPrelude
( prompt
, sleep
, clear_screen
, print_banner
) where
import System.IO
import Data.Time.Clock.POSIX
prompt :: String -> IO String
prompt question = do
putStr question
putStr " "
hFlush stdout
answer <- getLine
hFlush stdout
return answer
sleep :: Int -> IO ()
sleep secs = do
now <- get_time_as_int
let goal = now + secs
sleep_helper goal
sleep_helper :: Int -> IO ()
sleep_helper goal = do
now <- get_time_as_int
if now >= goal then return () else sleep_helper goal
get_time_as_int :: IO Int
get_time_as_int =
round `fmap` getPOSIXTime
clear_screen :: IO ()
clear_screen = do
print "\n"
print "\n"
print "\n"
print "\n"
print "\n"
print "\n"
print "\n"
print "\n"
print "\n"
print "\n"
print "\n"
print "\n"
print "\n"
print "\n"
print "\n"
print "\n"
print "\n"
print "\n"
print "\n"
print "\n"
print "\n"
print "\n"
print "\n"
print "\n"
print "\n"
print "\n"
print "\n"
print "\n"
print "\n"
print "\n"
print "\n"
print "\n"
print "\n"
print "\n"
print "\n"
print "\n"
print "\n"
print "\n"
print "\n"
print "\n"
print "\n"
print "\n"
print "\n"
print "\n"
print "\n"
print "\n"
print "\n"
print "\n"
print "\n"
print "\n"
print "\n"
print "\n"
print "\n"
print "\n"
print "\n"
print "\n"
print "\n"
print "\n"
print "\n"
print "\n"
print "\n"
print "\n"
print "\n"
print "\n"
print "\n"
print "\n"
print "\n"
print "\n"
print "\n"
print "\n"
print "\n"
print "\n"
print "\n"
print "\n"
print "\n"
print "\n"
print "\n"
print "\n"
print "\n"
print "\n"
print_banner :: IO ()
print_banner = do
print " ----- 8 ------------------- MADE POSSIBLE BY ------------------- "
print " 8 "
print ".oPYo. 8 .oPYo. `o o' .oPYo. .oPYo. o o .oPYo. oPYo. .oPYo. "
print ".oooo8 8 8oooo8 `bd' Yb.. .oooo8 8 8 8oooo8 8 `' Yb.. "
print "8 8 8 8. d'`b 'Yb. 8 8 8 8 8. 8 'Yb. "
print "`YooP8 8 `Yooo' o' `o `YooP' `YooP8 `YooP8 `Yooo' 8 `YooP' "
print " 8 "
print " --------- SMOKE WEED EVERYDAY --------- ooP' ------------------- "