{ hunk ./compiler/parser/Parser.y.pp 1190 + )])) } + | '|' aexp aexps opt_asig ralt + {% checkPatterns ($2 : reverse $3) >>= \ ps -> do + let lift (L _ (GRHS gd e)) = [_$_] + LL (GRHS gd (mkHsApp (nlHsVar $ mkUnqual dataName FSLIT("Match")) + (mkHsApp (nlHsVar $ mkUnqual varName FSLIT("return")) + e))) [_$_] + return (LL $ HsLam (mkMatchGroup [ + LL $ Match ps $4 (GRHSs (map lift (unLoc $5)) emptyLocalBinds), + LL $ Match (map (const nlWildPat) ps) $4 + (GRHSs (unguardedRHS (nlHsApp (nlHsVar $ mkUnqual dataName FSLIT("Match")) + (nlHsApp (nlHsVar $ mkUnqual varName FSLIT("fail")) + (nlHsLit $ mkHsString "lambda-match failure")))) + emptyLocalBinds }