RE: tcInferRho

2014-07-22 Thread Simon Peyton Jones
oes often happen, see TcUnify.uType_defer.) BUT if we generate an equality constraint, the zonking won't work, and the foralls won't be exposed early enough. I wish that the story here was more solid. The original idea of tcInferRho was to have some special cases that did not rely o

Re: tcInferRho

2014-07-22 Thread Richard Eisenberg
defer_me in TcUnify.checkTauTvUpdate prevent such a thing from happening? To learn more, I tried compiling this code: > f :: Bool -> Bool -> (forall a. a -> a) -> () > f = undefined > > g = (True `f` False) id I use infix application to avoid tcInferRho. With -ddump-tc-tra

RE: tcInferRho

2014-07-22 Thread Simon Peyton Jones
the fly, so the "it's always ok to defer" rule doesn't hold. Simon | -Original Message- | From: Richard Eisenberg [mailto:e...@cis.upenn.edu] | Sent: 22 July 2014 13:22 | To: Simon Peyton Jones | Cc: ghc-devs@haskell.org | Subject: Re: tcInferRho | | OK -- that al

Re: tcInferRho

2014-07-22 Thread Richard Eisenberg
the fly, so the "it's > always ok to defer" rule doesn't hold. > > Simon > > | -Original Message- > | From: Richard Eisenberg [mailto:e...@cis.upenn.edu] > | Sent: 22 July 2014 13:22 > | To: Simon Peyton Jones > | Cc: ghc-devs@haskell.org &

RE: tcInferRho

2014-07-22 Thread Simon Peyton Jones
x27;s one reason that the entire ImpredicativeTypes extensions is currently in limbo. Simon | -Original Message- | From: Richard Eisenberg [mailto:e...@cis.upenn.edu] | Sent: 22 July 2014 14:27 | To: Simon Peyton Jones | Cc: ghc-devs@haskell.org | Subject: Re: tcInferRho | | Ah -- it&