
#10031: coerce can cause compiler to loop -------------------------------------+------------------------------------- Reporter: glguy | Owner: Type: bug | Status: new Priority: normal | Milestone: Component: Compiler | Version: 7.10.1-rc1 Keywords: | Operating System: Unknown/Multiple Architecture: x86_64 | Type of failure: Compile-time (amd64) | crash Test Case: | Blocked By: Blocking: | Related Tickets: Differential Revisions: | -------------------------------------+------------------------------------- This program causes GHC to loop at compile time {{{ {-# LANGUAGE ScopedTypeVariables #-} import Data.Coerce coerce' :: Coercible b a => a -> b coerce' = coerce (\x -> x :: b) :: forall a b. Coercible b a => a -> b }}} I encountered this trying to use a similar construction in https://github.com/glguy/profunctors/blob/coerce/src/Data/Profunctor/Unsafe.... I'm not absolutely certain about what aspect of this snippet is looping the compiler, but it's pretty small. -- Ticket URL: http://ghc.haskell.org/trac/ghc/ticket/10031 GHC http://www.haskell.org/ghc/ The Glasgow Haskell Compiler