From: Twan van Laarhoven Date: Thu, 17 Jan 2008 21:08:18 +0000 (+0000) Subject: Monadify typecheck/TcArrows: use do and return X-Git-Url: http://git.megacz.com/?p=ghc-hetmet.git;a=commitdiff_plain;h=c1b6c0c66c524b7de43184c1a36f7c188d0706f7 Monadify typecheck/TcArrows: use do and return --- diff --git a/compiler/typecheck/TcArrows.lhs b/compiler/typecheck/TcArrows.lhs index 52b22cf..538eaa7 100644 --- a/compiler/typecheck/TcArrows.lhs +++ b/compiler/typecheck/TcArrows.lhs @@ -42,6 +42,8 @@ import Type import SrcLoc import Outputable import Util + +import Control.Monad \end{code} %************************************************************************ @@ -128,12 +130,11 @@ tc_cmd env (HsLet binds (L body_loc body)) res_ty ; return (HsLet binds' (L body_loc body')) } tc_cmd env in_cmd@(HsCase scrut matches) (stk, res_ty) - = addErrCtxt (cmdCtxt in_cmd) $ - addErrCtxt (caseScrutCtxt scrut) ( - tcInferRho scrut - ) `thenM` \ (scrut', scrut_ty) -> - tcMatchesCase match_ctxt scrut_ty matches res_ty `thenM` \ matches' -> - returnM (HsCase scrut' matches') + = addErrCtxt (cmdCtxt in_cmd) $ do + (scrut', scrut_ty) <- addErrCtxt (caseScrutCtxt scrut) $ + tcInferRho scrut + matches' <- tcMatchesCase match_ctxt scrut_ty matches res_ty + return (HsCase scrut' matches') where match_ctxt = MC { mc_what = CaseAlt, mc_body = mc_body } @@ -272,7 +273,7 @@ tc_cmd env cmd@(HsArrForm expr fixity cmd_args) (cmd_stk, res_ty) -- the s1..sm and check each cmd ; cmds' <- mapM (tc_cmd w_tv) cmds_w_tys - ; returnM (HsArrForm (noLoc $ HsWrap (WpTyLam w_tv) + ; return (HsArrForm (noLoc $ HsWrap (WpTyLam w_tv) (unLoc $ mkHsDictLet inst_binds expr')) fixity cmds') }