Opened 13 years ago

Closed 13 years ago

Last modified 45 years ago

#527 closed bug (Fixed)

Impossible Happening (deriving problem?)

Reported by: lewie Owned by: nobody
Priority: normal Milestone:
Component: Compiler Version: None
Keywords: Cc:
Operating System: Architecture:
Type of failure: Difficulty:
Test Case: Blocked By:
Blocking: Related Tickets:

Description

The (hopefully) attached file does the impossible:

ghc     -c P.hs -o P.o
ghc-5.00: panic! (the `impossible' happened, GHC
version 5.00):
	<<loop>>

If the types `NoteFun' and `PhraseFun' are replaced by
`()', the bug goes away.

Attachments (1)

P.2.hs (1.0 KB) - added by lewie 13 years ago.

Download all attachments as: .zip

Change History (2)

Changed 13 years ago by lewie

comment:1 Changed 13 years ago by simonpj

  • Status changed from assigned to closed
Logged In: YES 
user_id=50165


GHC was falling into a black hole when type checking a 
recursive
group of type declarations including a chain of type 
synonyms.

  type PhraseFun = PMap -> Float
  type PMap      = () -> Player
  data Player    = P.MkT P.PhraseFun

Reason: too much consistency checking in TcMonoType.
Easily fixed using the existing wimp_out hack, but it's a 
mess.
This commit fixes it for the 5.00 branch but I'll do 
something
better in the head shortly.





Note: See TracTickets for help on using tickets.