New syntax for GADT-style record declarations, and associated refactoring
[ghc-hetmet.git] / compiler / typecheck / TcArrows.lhs
index 082f9da..ee14eb8 100644 (file)
@@ -53,7 +53,7 @@ tcProc pat cmd exp_ty
     do { ((exp_ty1, res_ty), coi) <- boxySplitAppTy exp_ty 
        ; ((arr_ty, arg_ty), coi1) <- boxySplitAppTy exp_ty1
        ; let cmd_env = CmdEnv { cmd_arr = arr_ty }
-       ; (pat', cmd') <- tcProcPat pat arg_ty res_ty $
+       ; (pat', cmd') <- tcPat ProcExpr pat arg_ty res_ty $
                          tcCmdTop cmd_env cmd []
         ; let res_coi = mkTransCoI coi (mkAppTyCoI exp_ty1 coi1 res_ty IdCo)
        ; return (pat', cmd', res_coi) 
@@ -123,8 +123,7 @@ tc_cmd env (HsLet binds (L body_loc body)) res_ty
 
 tc_cmd env in_cmd@(HsCase scrut matches) (stk, res_ty)
   = addErrCtxt (cmdCtxt in_cmd) $ do
-      (scrut', scrut_ty) <- addErrCtxt (caseScrutCtxt scrut) $
-                              tcInferRho scrut 
+      (scrut', scrut_ty) <- tcInferRho scrut 
       matches' <- tcMatchesCase match_ctxt scrut_ty matches res_ty
       return (HsCase scrut' matches')
   where
@@ -187,8 +186,8 @@ tc_cmd env cmd@(HsLam (MatchGroup [L mtch_loc (match@(Match pats _maybe_rhs_sig
                  (kappaUnderflow cmd)
 
                -- Check the patterns, and the GRHSs inside
-       ; (pats', grhss') <- setSrcSpan mtch_loc                $
-                            tcLamPats pats cmd_stk res_ty      $
+       ; (pats', grhss') <- setSrcSpan mtch_loc                        $
+                            tcPats LambdaExpr pats cmd_stk res_ty      $
                             tc_grhss grhss
 
        ; let match' = L mtch_loc (Match pats' Nothing grhss')
@@ -341,10 +340,6 @@ arrowTyConKind = mkArrowKinds [liftedTypeKind, liftedTypeKind] liftedTypeKind
 cmdCtxt :: HsExpr Name -> SDoc
 cmdCtxt cmd = ptext (sLit "In the command:") <+> ppr cmd
 
-caseScrutCtxt :: LHsExpr Name -> SDoc
-caseScrutCtxt cmd
-  = hang (ptext (sLit "In the scrutinee of a case command:")) 4 (ppr cmd)
-
 nonEmptyCmdStkErr :: HsExpr Name -> SDoc
 nonEmptyCmdStkErr cmd
   = hang (ptext (sLit "Non-empty command stack at command:"))