diff options
author | Simon Peyton Jones <simonpj@microsoft.com> | 2016-02-12 13:36:17 +0000 |
---|---|---|
committer | Simon Peyton Jones <simonpj@microsoft.com> | 2016-02-12 17:37:11 +0000 |
commit | c6485d5e6daec20c8ff66d6e721d3e0a5f3156ac (patch) | |
tree | 33f58e16c68e8eadc0c02b16456f85d6dc3a31da /compiler/typecheck/TcClassDcl.hs | |
parent | f3b9db31e099836420fbf88eaa36f6fe3d6b85b5 (diff) | |
download | haskell-c6485d5e6daec20c8ff66d6e721d3e0a5f3156ac.tar.gz |
Simplify AbsBinds wrapping
In poking Trac #11414 I found myself sinking into the abe_inst_wrap
swamp. What is this strange thing? (It turned out that #11414 was
breaking because of it.)
Thrillingly, I found a way to sweep it away again, putting the deep
instantation into tcMonoBinds instead of mkExport; and it turned out
that the fun_co_fn field of FunBind was already there ready to receive
exactly this wrapper. Hooray. Result
* Death to abe_inst_wrap
* Death to mbi_orig
* Death to the plumbing in tcPolyInfer that did the
deep instantiation
I did find that I had to re-engineer the treatment of instance type
signatures (again), but the result looks more modular and robust to
me.
And #11414 is fixed.
Diffstat (limited to 'compiler/typecheck/TcClassDcl.hs')
-rw-r--r-- | compiler/typecheck/TcClassDcl.hs | 1 |
1 files changed, 0 insertions, 1 deletions
diff --git a/compiler/typecheck/TcClassDcl.hs b/compiler/typecheck/TcClassDcl.hs index 227129030c..40da199497 100644 --- a/compiler/typecheck/TcClassDcl.hs +++ b/compiler/typecheck/TcClassDcl.hs @@ -253,7 +253,6 @@ tcDefMeth clas tyvars this_dict binds_in hs_sig_fn prag_fn -- completeSigPolyId , abe_mono = completeIdSigPolyId local_dm_sig , abe_wrap = idHsWrapper - , abe_inst_wrap = idHsWrapper , abe_prags = IsDefaultMethod } full_bind = AbsBinds { abs_tvs = tyvars , abs_ev_vars = [this_dict] |