Skip to content
GitLab
Projects Groups Snippets
  • /
  • Help
    • Help
    • Support
    • Community forum
    • Submit feedback
  • Sign in / Register
  • GHC GHC
  • Project information
    • Project information
    • Activity
    • Labels
    • Members
  • Repository
    • Repository
    • Files
    • Commits
    • Branches
    • Tags
    • Contributors
    • Graph
    • Compare
    • Locked Files
  • Issues 5,348
    • Issues 5,348
    • List
    • Boards
    • Service Desk
    • Milestones
    • Iterations
  • Merge requests 573
    • Merge requests 573
  • CI/CD
    • CI/CD
    • Pipelines
    • Jobs
    • Schedules
    • Test Cases
  • Deployments
    • Deployments
    • Releases
  • Analytics
    • Analytics
    • Value stream
    • CI/CD
    • Code review
    • Insights
    • Issue
    • Repository
  • Wiki
    • Wiki
  • Snippets
    • Snippets
  • Activity
  • Graph
  • Create a new issue
  • Jobs
  • Commits
  • Issue Boards
Collapse sidebar
  • Glasgow Haskell CompilerGlasgow Haskell Compiler
  • GHCGHC
  • Issues
  • #9915
Closed
Open
Issue created Dec 21, 2014 by Gergő Érdi@cactusContributor

GHCi has trouble with 'foreign' when it is not a keyword

In Haskell 98 mode, foreign is not a keyword at all. The following is an example of a valid Haskell 98 program:

{-# 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
Trac metadata
Trac field Value
Version 7.8.3
Type Bug
TypeOfFailure OtherFailure
Priority normal
Resolution Unresolved
Component Compiler (Parser)
Test case
Differential revisions
BlockedBy
Related
Blocking
CC
Operating system
Architecture
To upload designs, you'll need to enable LFS and have an admin enable hashed storage. More information
Assignee
Assign to
Time tracking