Opened 7 years ago

Closed 7 years ago

Last modified 6 years ago

#2523 closed bug (fixed)

Improve warnings for use of "forall" without -XExistentialQuantification

Reported by: dmhouse Owned by:
Priority: normal Milestone:
Component: Compiler Version: 6.8.3
Keywords: Cc:
Operating System: Unknown/Multiple Architecture: Unknown/Multiple
Type of failure: Test Case:
Blocked By: Blocking:
Related Tickets: Differential Revisions:

Description

Here's a GHCi session:

Prelude> let foo :: forall a. a; foo = undefined

<interactive>:1:19:
    Illegal operator `.' in type `forall a . a'
      (Use -XTypeOperators to allow operators in types)
Prelude> let foo :: forall a. Show a => a; foo = undefined
<interactive>:1:28: parse error on input `=>'

Both of these errors could be improved, I think, by detecting the use of 'forall' as a type variable name, and suggesting -XExistentialQuantification if it's being used.

Change History (3)

comment:1 Changed 7 years ago by simonpj

  • difficulty set to Unknown
  • Resolution set to fixed
  • Status changed from new to closed

Good idea.

Prelude> let foo :: forall a. a; foo = undefined

<interactive>:1:19:
    Illegal operator `.' in type `forall a . a'
      Perhaps you intended to use -XRankNTypes or similar flag
      to enable explicit-forall syntax: forall <tvs>. <type>
Prelude> 

Patch is this

Thu Aug 21 13:35:02 GMT Daylight Time 2008  [email protected]
  * Improve error message when 'forall' is not a keyword

Simon

comment:2 Changed 6 years ago by simonmar

  • Architecture changed from Unknown to Unknown/Multiple

comment:3 Changed 6 years ago by simonmar

  • Operating System changed from Unknown to Unknown/Multiple
Note: See TracTickets for help on using tickets.