
#9915: GHCi has trouble with 'foreign' when it is not a keyword -------------------------------------+------------------------------------- Reporter: cactus | Owner: Type: bug | Status: new Priority: normal | Milestone: Component: Compiler (Parser) | Version: 7.8.3 Keywords: GHCi | Operating System: Architecture: Unknown/Multiple | Unknown/Multiple Difficulty: Unknown | Type of failure: Blocked By: | None/Unknown Related Tickets: | Test Case: | Blocking: | Differential Revisions: -------------------------------------+------------------------------------- In Haskell 98 mode, `foreign` is not a keyword at all. The following is an example of a valid Haskell 98 program: {{{#!hs {-# LANGUAGE Haskell98 #-} module F where foreign :: Int foreign = 42 }}} However, it seems noone told GHCi about this: {{{ 12:42:38 [cactus@galaxy hs]$ ghci -XHaskell98 GHCi, version 7.8.3: http://www.haskell.org/ghc/ :? for help Loading package ghc-prim ... linking ... done. Loading package integer-gmp ... linking ... done. Loading package base ... linking ... done. λ» x = 42 -- Expected to fail <interactive>:2:3: parse error on input ‘=’ λ» x -- Expected to fail <interactive>:3:1: Not in scope: ‘x’ λ» -- So this should fail as well, right? λ» foreign = 42 λ» -- Nope λ» foreign 42 λ» -- But wait, there's more! λ» foreign -- boo! <interactive>:9:1: Parse error: naked expression at top level Perhaps you intended to use TemplateHaskell }}} -- Ticket URL: http://ghc.haskell.org/trac/ghc/ticket/9915 GHC http://www.haskell.org/ghc/ The Glasgow Haskell Compiler