From: Manuel M T Chakravarty Date: Wed, 20 Sep 2006 16:56:10 +0000 (+0000) Subject: ..and a bit more X-Git-Tag: After_FC_branch_merge~90 X-Git-Url: http://git.megacz.com/?p=ghc-hetmet.git;a=commitdiff_plain;h=5c71a3bc3e9acfe3bee384a7948696aa5ac71646 ..and a bit more Mon Sep 18 14:30:11 EDT 2006 Manuel M T Chakravarty * ..and a bit more Sat Aug 5 21:23:16 EDT 2006 Manuel M T Chakravarty * ..and a bit more Fri Jul 7 10:40:40 EDT 2006 simonpj@microsoft.com --- diff --git a/compiler/typecheck/TcInstDcls.lhs b/compiler/typecheck/TcInstDcls.lhs index 6ff97e3..b05b551 100644 --- a/compiler/typecheck/TcInstDcls.lhs +++ b/compiler/typecheck/TcInstDcls.lhs @@ -551,44 +551,6 @@ tcMethods origin clas inst_tyvars' dfun_theta' inst_tys' mapM tc_method_bind meth_infos `thenM` \ meth_binds_s -> returnM (meth_ids, unionManyBags meth_binds_s) -v v v v v v v -************* - - --- Derived newtype instances -tcMethods origin clas inst_tyvars' dfun_theta' inst_tys' - avail_insts op_items (NewTypeDerived maybe_co rep_tys) - = getInstLoc origin `thenM` \ inst_loc -> - mapAndUnzip3M (do_one inst_loc) op_items `thenM` \ (meth_ids, meth_binds, rhs_insts) -> - - tcSimplifyCheck - (ptext SLIT("newtype derived instance")) - inst_tyvars' avail_insts rhs_insts `thenM` \ lie_binds -> - - -- I don't think we have to do the checkSigTyVars thing - - returnM (meth_ids, lie_binds `unionBags` listToBag meth_binds) - - where - do_one inst_loc (sel_id, _) - = -- The binding is like "op @ NewTy = op @ RepTy" - -- Make the *binder*, like in mkMethodBind - tcInstClassOp inst_loc sel_id inst_tys' `thenM` \ meth_inst -> - - -- Make the *occurrence on the rhs* - tcInstClassOp inst_loc sel_id rep_tys' `thenM` \ rhs_inst -> - let - meth_id = instToId meth_inst - in - return (meth_id, noLoc (VarBind meth_id (nlHsVar (instToId rhs_inst))), rhs_inst) - - -- Instantiate rep_tys with the relevant type variables - -- This looks a bit odd, because inst_tyvars' are the skolemised version - -- of the type variables in the instance declaration; but rep_tys doesn't - -- have the skolemised version, so we substitute them in here - rep_tys' = substTys subst rep_tys - subst = zipOpenTvSubst inst_tyvars' (mkTyVarTys inst_tyvars') -^ ^ ^ ^ ^ ^ ^ \end{code}