无法弄清楚我正在寻找的monad功能

ago*_*bel 1 monads haskell

我以为是,liftM但类型签名似乎不正确.我希望有这样的功能:

 someFunc :: Monad m => (a -> b) -> a -> m b
 someFunc f = return . f
Run Code Online (Sandbox Code Playgroud)

我知道我可以用上面的代码来定义它,但我的直觉说这已经存在了,我只是因为某种原因而没有看到它.

例如:

main = do
    n_tmp <- getLine
    let n = read n_tmp :: Int
Run Code Online (Sandbox Code Playgroud)

VS

main = do
    getLine >>= someFunc read :: IO Int
Run Code Online (Sandbox Code Playgroud)

或者我只是做了可怕的错误?

jam*_*idh 9

在这种情况下我只使用fmap ....

main = do
    n <- fmap read getLine
    ....
Run Code Online (Sandbox Code Playgroud)