summaryrefslogtreecommitdiff
path: root/compiler/typecheck/TcClassDcl.hs
diff options
context:
space:
mode:
authorSimon Peyton Jones <simonpj@microsoft.com>2016-02-12 13:36:17 +0000
committerSimon Peyton Jones <simonpj@microsoft.com>2016-02-12 17:37:11 +0000
commitc6485d5e6daec20c8ff66d6e721d3e0a5f3156ac (patch)
tree33f58e16c68e8eadc0c02b16456f85d6dc3a31da /compiler/typecheck/TcClassDcl.hs
parentf3b9db31e099836420fbf88eaa36f6fe3d6b85b5 (diff)
downloadhaskell-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.hs1
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]