#13055: Adding INLINABLE pragma causes GHC panic -------------------------------------+------------------------------------- Reporter: mpickering | Owner: Type: bug | Status: new Priority: high | Milestone: Component: Compiler | Version: 8.0.1 Resolution: | Keywords: Operating System: Unknown/Multiple | Architecture: | Unknown/Multiple Type of failure: None/Unknown | Test Case: Blocked By: | Blocking: Related Tickets: | Differential Rev(s): Wiki Page: | -------------------------------------+------------------------------------- Comment (by rwbarton): Oh never mind, the unfolding is in the panic. In a normal build, I have this unfolding information {{{ e8b07c72a9d4975f2b942de3da1a768e (<**>) :: Applicative f => f a -> f (a -> b) -> f b {- Arity: 3, HasNoCafRefs, Strictness: <S(LLC(C(S))LL),U(1*U(1*C1(C1(U)),A),A,1*C1(C1(U)),A,A)><L,U><L,U>, Unfolding: InlineRule (3, True, False) (\ @ f :: * -> * @ a @ b ($dApplicative :: Applicative f) (eta :: f a) (eta1 :: f (a -> b)) -> <*> @ f $dApplicative @ (a -> b) @ b (fmap @ f ($p1Applicative @ f $dApplicative) @ a @ ((a -> b) -> b) (<**>1 @ a @ b) eta) eta1) -} 5729c051546f23f4fa0f6405530960ae <**>1 :: a -> (a -> b) -> b {- Arity: 2, HasNoCafRefs, Strictness: <L,U><C(S),1*C1(U)>, Unfolding: InlineRule (2, True, True) (\ @ a @ b (x :: a) (y :: a -> b) -> y x) -} }}} so GHC optimized the unfolding, and it no longer mentions `($)` directly. -- Ticket URL: <http://ghc.haskell.org/trac/ghc/ticket/13055#comment:4> GHC <http://www.haskell.org/ghc/> The Glasgow Haskell Compiler