
#11240: Simplifier ticks exhausted on Y combinator -------------------------------------+------------------------------------- Reporter: sweirich | Owner: Type: bug | Status: new Priority: normal | Milestone: Component: Compiler | Version: 7.10.3 Keywords: | Operating System: Unknown/Multiple Architecture: | Type of failure: None/Unknown Unknown/Multiple | Test Case: | Blocked By: Blocking: | Related Tickets: Differential Rev(s): | Wiki Page: -------------------------------------+------------------------------------- The code from this stackoverflow question: https://programmers.stackexchange.com/questions/215712/type-checking-and- recursive-types-writing-the-y-combinator-in-haskell-ocaml i.e. {{{#!hs newtype Mu a = Roll { unroll :: Mu a -> a } fix :: (a -> a) -> a fix = \f -> (\x -> f (unroll x x)) $ Roll (\x -> f (unroll x x)) }}} produces the following output when compiled with GHC 7.10.2 or 7.10.3: {{{ sweirich$ ghc --make Mu.hs [1 of 1] Compiling Mu ( Mu.hs, Mu.o ) ghc: panic! (the 'impossible' happened) (GHC version 7.10.3 for x86_64-apple-darwin): Simplifier ticks exhausted When trying UnfoldingDone a_sml To increase the limit, use -fsimpl-tick-factor=N (default 100) If you need to do this, let GHC HQ know, and what factor you needed To see detailed counts use -ddump-simpl-stats Total ticks: 4962 Please report this as a GHC bug: http://www.haskell.org/ghc/reportabug }}} The code compiles with newtype replaces by data. -- Ticket URL: http://ghc.haskell.org/trac/ghc/ticket/11240 GHC http://www.haskell.org/ghc/ The Glasgow Haskell Compiler