X-Git-Url: http://git.megacz.com/?p=ghc-hetmet.git;a=blobdiff_plain;f=compiler%2Ftypecheck%2FTcInstDcls.lhs;h=ecf4ac9790e02af4e872bf4be92f54d010a814d6;hp=45338d0a1eced7142a06bad9fe3735ddb7d1f1e2;hb=afef39736dcde6f4947a6f362f9e6b3586933db4;hpb=0065d5ab628975892cea1ec7303f968c3338cbe1;ds=inline diff --git a/compiler/typecheck/TcInstDcls.lhs b/compiler/typecheck/TcInstDcls.lhs index 45338d0..ecf4ac9 100644 --- a/compiler/typecheck/TcInstDcls.lhs +++ b/compiler/typecheck/TcInstDcls.lhs @@ -51,7 +51,6 @@ pass, when the class-instance envs and GVE contain all the info from all the instance and value decls. Indeed that's the reason we need two passes over the instance decls. - Here is the overall algorithm. Assume that we have an instance declaration @@ -176,8 +175,10 @@ tcLocalInstDecl1 :: LInstDecl Name -- Type-check all the stuff before the "where" -- -- We check for respectable instance type, and context -tcLocalInstDecl1 decl@(L loc (InstDecl poly_ty binds uprags)) +tcLocalInstDecl1 decl@(L loc (InstDecl poly_ty binds uprags ats)) = -- Prime error recovery, set source location + ASSERT( null ats ) + -- !!!TODO: Handle the `ats' parameter!!! -=chak recoverM (returnM Nothing) $ setSrcSpan loc $ addErrCtxt (instDeclCtxt1 poly_ty) $ @@ -451,7 +452,10 @@ tcMethods origin clas inst_tyvars' dfun_theta' inst_tys' let prag_fn = mkPragFun uprags all_insts = avail_insts ++ catMaybes meth_insts - tc_method_bind = tcMethodBind inst_tyvars' dfun_theta' all_insts prag_fn + sig_fn n = Just [] -- No scoped type variables, but every method has + -- a type signature, in effect, so that we check + -- the method has the right type + tc_method_bind = tcMethodBind inst_tyvars' dfun_theta' all_insts sig_fn prag_fn meth_ids = [meth_id | (_,meth_id,_) <- meth_infos] in