
#7748: Runtime <<loop>> due to incorrect inferred type ----------------------------------------+----------------------------------- Reporter: jbransen | Owner: Type: bug | Status: new Priority: normal | Component: Compiler (Type checker) Version: 7.6.2 | Keywords: Os: Unknown/Multiple | Architecture: Unknown/Multiple Failure: GHC accepts invalid program | Blockedby: Blocking: | Related: ----------------------------------------+----------------------------------- Comment(by dreixel): The "incorrect type" is rejected by GHC HEAD with the error message: {{{ Couldn't match expected type ‛a’ with actual type ‛Maybe (Maybe (r -> ()))’ ‛a’ is a rigid type variable bound by the type signature for test :: a -> r -> () at Test.hs:7:9 Relevant bindings include test :: a -> r -> () (bound at Test.hs:8:1) zd :: a (bound at Test.hs:8:6) f :: r -> () (bound at Test.hs:9:8) g :: r -> () (bound at Test.hs:9:16) In the pattern: Nothing In a case alternative: Nothing -> const () In the expression: case zd of { Nothing -> const () Just Nothing -> const () Just (Just p) -> p } }}} The "correct type" is accepted, and the program runs and terminates. It is also the type inferred by HEAD. So, it seems like whatever it was, it has been fixed. -- Ticket URL: http://hackage.haskell.org/trac/ghc/ticket/7748#comment:1 GHC http://www.haskell.org/ghc/ The Glasgow Haskell Compiler