I m still learning haskell and i found a tutorial that introduces the IO concepts using the following hangman simple programm

```
import System.IO
import System.Random

main = do
  handle <- openFile "enable1.txt" ReadMode 
  contents <- hGetContents handle           
  gen <- getStdGen                          
  let words = map init (lines contents)     
      (n, _) = randomR(0, (length words) - 1) gen :: (Int, StdGen) 
      word = words !! n                                         
  play word (map (\x -> '_') word) 6        
  build the print the string
  hClose handle                           

play word known guesses
  | word == known = do
      putStrLn known
      putStrLn "You win!!"
  | guesses == 0 = do
      putStrLn known
      putStrLn ("You lose. the word was " ++ word ++ ".")
  | otherwise    = do
      putStrLn known
      putStrLn ("You have " ++ guesses ++ "guesses left.")
      line <- getLine
      let (newKnown, newGuesses) = handle (head line) word known guesses
      play word newKnown newGuesses

    --putStrLn (handle (head line) word)

handle letter word known guesses
  | letter `elem` word = (zipWith (\w k -> if w == letter then w else k) word known, guesses)
  | otherwise          = (known, guesses - 1)

```

enable1.txt is a local file that have lots of words.
I run the file using runhaskill 
and i get the following error:

```
:~/Documents/atom/haskell$ runhaskell hangman.hs 

hangman.hs:22:36: error:
    • No instance for (Num [Char]) arising from the literal ‘6’
    • In the third argument of ‘play’, namely ‘6’
      In a stmt of a 'do' block: play word (map (\ x -> '_') word) 6
      In the expression:
        do { handle <- openFile "enable1.txt" ReadMode;
             contents <- hGetContents handle;
             gen <- getStdGen;
             let words = map init (lines contents)
                 (n, _) = ...
                 ....;
             .... }

hangman.hs:30:16: error:
    • No instance for (Num [Char]) arising from the literal ‘0’
    • In the second argument of ‘(==)’, namely ‘0’
      In the expression: guesses == 0
      In a stmt of a pattern guard for
                     an equation for ‘play’:
        guesses == 0

hangman.hs:37:36: error:
    • No instance for (Num [Char]) arising from a use of ‘handle’
    • In the expression: handle (head line) word known guesses
      In a pattern binding:
        (newKnown, newGuesses) = handle (head line) word known guesses
      In the expression:
        do { putStrLn known;
             putStrLn ("You have " ++ guesses ++ "guesses left.");
             line <- getLine;
             let (newKnown, newGuesses) = handle (head line) word known guesses;
             .... }

```

Can anyone please help me understand the issue/ how to fix it.
runhaskell --version is runghc 8.0.2