Is there any specific reason why GHC is written in a parser GENERATOR (Happy) and not in MONADIC PARSER COMBINATOR (like parsec)?
Is Happy faster / handles better errors / hase some great features or anything else?
Most probably because GHC predates practical parser combinators. Happy is just a yacc clone, really; ancient tech. And I would suspect that replacing the parser at this point could get pretty painful.