I want to do something in Haskell that looks like this:
main1 = do s <- getLine
if s == \"foo\" then putStr \"You entered foo\"
The easiest way to do a no-op in a monad is:
return ()
Equivalently:
pure ()
However, for the particular idiom you're doing, there's a combinator already made for you:
import Control.Monad
main = do s <- getLine
when (s == "foo") $ putStr "You entered foo"
This when combinator behaves exactly like your doIf
combinator :)