
#10709: Using ($) allows sneaky impredicativity on its left -------------------------------------+------------------------------------- Reporter: goldfire | Owner: goldfire Type: bug | Status: new Priority: normal | Milestone: Component: Compiler (Type | Version: 7.10.1 checker) | Resolution: | Keywords: Operating System: Unknown/Multiple | Architecture: | Unknown/Multiple Type of failure: None/Unknown | Test Case: Blocked By: | Blocking: Related Tickets: | Differential Revisions: -------------------------------------+------------------------------------- Comment (by rwbarton): From IRC discussion, something weird is happening that is not specific to `$`. All these type check: {{{ (replicateM 2 . mask) (\_ -> return ()) (replicateM 2 . mask) (\x -> undefined x) (replicateM 2 . mask) (id (\_ -> undefined)) }}} but these do not: {{{ (replicateM 2 . mask) (const undefined) (replicateM 2 . mask) ((\x -> undefined x) :: a -> b) }}} -- Ticket URL: http://ghc.haskell.org/trac/ghc/ticket/10709#comment:1 GHC http://www.haskell.org/ghc/ The Glasgow Haskell Compiler