What is going wrong here?

Michael

=======

import System.Random

coinToss :: StdGen -> IO ()
coinToss gen = putStrLn "What's your guess, heads or tails ('h' or 't')?"
               >> getChar
               >>= \c -> let (randInt, _) = randomR(0,1) gen :: (Int, StdGen)
                    in if c == ((!!) "ht" randInt) then putStrLn "You win!" else putStrLn "You lose!"

main = do
         gen <- getStdGen
         coinToss gen
         gen <- newStdGen
         main

=======

[michael@localhost ~]$ runhaskell cointoss.hs
What's your guess, heads or tails ('h' or 't')?
h
You win!
What's your guess, heads or tails ('h' or 't')?
You lose!
What's your guess, heads or tails ('h' or 't')?
h
You lose!
What's your guess, heads or tails ('h' or 't')?
You lose!
What's your guess, heads or tails ('h' or 't')?
^Ccointoss.hs: cointoss.hs: interrupted
[michael@localhost ~]$