import Control.Monad.IO.Class {- transformers -} import System.Console.Haskeline {- haskeline -} import U go :: WithT -> InputT IO () go withT = do r <- getInputLine "% " case r of Nothing -> return () Just "quit" -> return () Just s -> liftIO (proc_s withT s) >> go withT main :: IO () main = opt_arg >>= runInputT defaultSettings . go . with_t