4 , getInputLineWithDefault
6 , readInputLineWithDefault
11 import System.Console.Haskeline
14 trim :: Maybe String -> Maybe String
15 trim Nothing = Nothing
16 trim (Just xs) = case trimTail $ trimHead xs of
21 trimHead (' ':ys) = trimHead ys
24 trimTail = reverse . trimHead . reverse
26 getInputLine' :: MonadException m => String -> InputT m String
28 = do ret <- getInputLine prompt
30 Just ret' -> return ret'
31 Nothing -> fail "No input"
33 getInputLineWithDefault :: MonadException m => String -> String -> InputT m String
34 getInputLineWithDefault prompt defaultStr
35 = do ret <- getInputLine prompt
37 Just ret' -> return ret'
38 Nothing -> return defaultStr
41 readInputLine' :: (MonadException m, Read r) => String -> InputT m r
42 readInputLine' = liftM read . getInputLine'
44 readInputLineWithDefault :: (MonadException m, Read r) => String -> r -> InputT m r
45 readInputLineWithDefault prompt defaultValue
46 = do ret <- getInputLine prompt
48 Just ret' -> return $ read ret'
49 Nothing -> return defaultValue