
#11947: GHC mistakenly warns about type defaulting in the presence of -XTypeApplications -------------------------------------+------------------------------------- Reporter: RyanGlScott | Owner: Type: bug | Status: new Priority: normal | Milestone: Component: Compiler (Type | Version: 8.0.1 checker) | Keywords: Resolution: | TypeApplications Operating System: Unknown/Multiple | Architecture: Type of failure: Incorrect | Unknown/Multiple warning at compile-time | Test Case: Blocked By: | Blocking: Related Tickets: | Differential Rev(s): Wiki Page: | -------------------------------------+------------------------------------- Comment (by goldfire): This is correct behavior. As described [http://downloads.haskell.org/~ghc/8.0.1-rc2/docs/html/users_guide/glasgow_ex... #ambiguous-types-and-the-ambiguity-check here], the ambiguity check for `theFloatDigits` does precisely this: {{{ check :: forall a. RealFloat a => Int -- type copied from theFloatDigits check = theFloatDigits }}} When checking this declaration, `a` is indeed defaulted to `Double`, as reported. This is a consequence of the fact that `theFloatDigits`'s type is indeed ambiguous. A few ways forward here: 1. Clarify the mechanism behind the ambiguity check in the manual. It's stated in there now, but we could make this more prominent and describe that GHC really does type-check a binding as above. 2. Disable type defaulting in an ambiguity check. 3. Do nothing. -- Ticket URL: http://ghc.haskell.org/trac/ghc/ticket/11947#comment:1 GHC http://www.haskell.org/ghc/ The Glasgow Haskell Compiler