{- | Module : $Header$ Description : IO. dealwithit.jpeg. Copyright : (c) plaimi 2015 License : GPL-3 Maintainer : plailude@plaimi.net -} module Plailude.Control.IO where import System.Posix.IO ( stdInput, ) import System.Posix.Terminal ( queryTerminal, ) infixr 9 ~+~ (~+~) :: IO a -> IO a -> IO a -- | Query the terminal for STDIN. If there is any, do lhs -- if not, do rhs. l ~+~ r = queryTerminal stdInput >>= \i -> if i then l else r