Yet more work on TcSimplify.simplifyInfer
authorSimon Peyton Jones <simonpj@microsoft.com>
Wed, 12 Apr 2017 14:09:37 +0000 (15:09 +0100)
committerSimon Peyton Jones <simonpj@microsoft.com>
Thu, 13 Apr 2017 08:23:53 +0000 (09:23 +0100)
commit0ae72512255ba66ef89bdfeea65a23ea6eb35124
treea21ffcb040c1f53cfb8a1f548a8c284208dd623d
parent037c2495d83bb7da7f15c8e076df2c575500d0fd
Yet more work on TcSimplify.simplifyInfer

The proximate cause for this patch is Trac #13482, which pointed out
further subtle interactions between
   - Inferring the most general type of a function
   - A partial type signature for that function

That led me into /further/ changes to the shiny new stuff in
TcSimplify.simplifyInfer, decideQuantification, decideMonoTyVars,
and related functions.

Happily, I was able to make some of it quite a bit simpler,
notably the bit about promoting free tyvars.  I'm happy with
the result.

Moreover I fixed Trac #13524 at the same time.  Happy days.
compiler/typecheck/TcBinds.hs
compiler/typecheck/TcRnTypes.hs
compiler/typecheck/TcSimplify.hs
testsuite/tests/partial-sigs/should_compile/NamedTyVar.stderr
testsuite/tests/partial-sigs/should_compile/T13482.hs [new file with mode: 0644]
testsuite/tests/partial-sigs/should_compile/T13482.stderr [new file with mode: 0644]
testsuite/tests/partial-sigs/should_compile/all.T
testsuite/tests/typecheck/should_compile/all.T