I'm not sure if it's a ghc feature or a bug.
Should happy emable that extension for -g option?

The build error is Kind mismatch:

  monad002.g.hs:296:26:
    Couldn't match kind ‘*’ with ‘#’
    When matching types
      t0 :: *
      Happy_GHC_Exts.Int# :: #
    Relevant bindings include
      cont :: t0 -> [Char] -> Int -> ParseResult a
        (bound at monad002.g.hs:293:13)
    In the first argument of ‘cont’, namely ‘8#’
    In the expression: cont 8#
    In a case alternative: TokenLet -> cont 8#

Slightly related bug: https://ghc.haskell.org/trac/ghc/ticket/8739

diff --git a/tests/monad002.ly b/tests/monad002.ly
index 35cc5b0..4c526ca 100644
--- a/tests/monad002.ly
+++ b/tests/monad002.ly
@@ -5,2 +5,3 @@ Test for monadic Happy Parsers, Simon Marlow 1996.
 > {-# OPTIONS_GHC -fglasgow-exts #-}
+> {-# LANGUAGE MonoLocalBinds #-}
 > -- -fglasgow-exts required because P is a type synonym, and Happy uses it
