
#11122: Ambiguous inferred type causes a panic -------------------------------------+------------------------------------- Reporter: tuplanolla | Owner: Type: bug | Status: closed Priority: normal | Milestone: Component: Compiler (Type | Version: 7.10.2 checker) | Resolution: duplicate | Keywords: Operating System: Linux | Architecture: | Unknown/Multiple Type of failure: None/Unknown | Test Case: Blocked By: | Blocking: Related Tickets: #10615 | Differential Rev(s): Wiki Page: | -------------------------------------+------------------------------------- Comment (by thomie): Here is a self-contained reproducer. {{{#!hs {-# LANGUAGE NoMonomorphismRestriction #-} {-# LANGUAGE PartialTypeSignatures #-} module T11122 where data Parser a instance Functor Parser where fmap = undefined many p = undefined digit = undefined parseTest = undefined -------------------------------------------- parser :: Parser _ --parser :: Parser Int parser = read <$> many digit data Wrapper = Wrapper Int deriving Show wrapperParser = Wrapper <$> parser main :: IO () main = parseTest wrapperParser "0" }}} This is the error message that HEAD generates: {{{ $ ghc-7.11.20151123 Test.hs [1 of 1] Compiling Test ( Test.hs, Test.o ) Test.hs:21:1: error: No instance for (Read t) When checking that ‘parser’ has the inferred type parser :: forall t. Parser t Probable cause: the inferred type is ambiguous Test.hs:28:18: error: Ambiguous type variable ‘f0’ arising from a use of ‘wrapperParser’ prevents the constraint ‘(Functor f0)’ from being solved. Probable fix: use a type annotation to specify what ‘f0’ should be. These potential instances exist: instance Functor (Array i) -- Defined in ‘GHC.Arr’ instance Functor IO -- Defined in ‘GHC.Base’ instance Functor Parser -- Defined at Test.hs:8:10 ...plus four others (use -fprint-potential-instances to see them all) In the first argument of ‘parseTest’, namely ‘wrapperParser’ In the expression: parseTest wrapperParser "0" In an equation for ‘main’: main = parseTest wrapperParser "0" }}} I don't know if that means the problem is fixed. -- Ticket URL: http://ghc.haskell.org/trac/ghc/ticket/11122#comment:3 GHC http://www.haskell.org/ghc/ The Glasgow Haskell Compiler