identifier  = do{ c  <- letter
; cs <- many (alphaNum <|> char '_')
; return (c:cs)
}
word = many1 letter
simpleComment   = do{ string "<!--"
; manyTill anyChar (try (string "-->"))
}
Note the overlapping parsers anyChar and string
"-->", and therefore the use of the try combinator.
spaces = skipMany space