.. and an a -> b version: module FunctorIOab where {- usage: *FunctorIOab> main {type something, <enter>} -} processAb:: String -> Int processAb = length main::IO Int main = func getLine func::IO String -> IO Int func ios = processAb <$> ios