[GHC] #7788: Recursive type family causes <<loop>>

GHC ghc-devs at haskell.org
Tue Dec 30 11:52:22 UTC 2014


#7788: Recursive type family causes <<loop>>
-------------------------------------+-------------------------------------
        Reporter:  shachaf           |                   Owner:  simonpj
            Type:  bug               |                  Status:  new
        Priority:  high              |               Milestone:  7.10.1
       Component:  Compiler (Type    |                 Version:  7.6.2
  checker)                           |                Keywords:
      Resolution:                    |            Architecture:
Operating System:  Unknown/Multiple  |  Unknown/Multiple
 Type of failure:  Incorrect result  |               Test Case:
  at runtime                         |                Blocking:
      Blocked By:                    |  Differential Revisions:
 Related Tickets:                    |
-------------------------------------+-------------------------------------

Comment (by simonpj):

 I'm all for having an evaluation depth.

 But I'm cautious about adding a flag.  Just saying "lazier" doesn't say
 much.  If we could somehow promise "lazy", for some well-specified meaning
 of that term, then I'd go for that. But not "disable some implementation
 optimisation that happens to allow one program (that one one cares about)
 to typecheck".

 Currently we flatten type-function applications, and reduce them
 aggressively.  I think it's pretty odd that `id2` typechecks with the
 optimisation disabled; I strongly suspect that a simple variant will not.

 Simon

--
Ticket URL: <http://ghc.haskell.org/trac/ghc/ticket/7788#comment:7>
GHC <http://www.haskell.org/ghc/>
The Glasgow Haskell Compiler


More information about the ghc-tickets mailing list