_interface_ TcExpr 1
_exports_
-TcExpr tcExpr ;
+TcExpr tcExpr tcMonoExpr ;
_declarations_
1 tcExpr _:_ _forall_ [s] =>
RnHsSyn.RenamedHsExpr
-> TcType.TcType
-> TcMonad.TcM s (TcHsSyn.TcExpr, Inst.LIE) ;;
+1 tcMonoExpr _:_ _forall_ [s] =>
+ RnHsSyn.RenamedHsExpr
+ -> TcType.TcType
+ -> TcMonad.TcM s (TcHsSyn.TcExpr, Inst.LIE) ;;
__interface TcExpr 1 0 where
-__export TcExpr tcExpr ;
+__export TcExpr tcExpr tcMonoExpr ;
1 tcExpr ::
RnHsSyn.RenamedHsExpr
-> TcType.TcType
-> TcMonad.TcM (TcHsSyn.TcExpr, Inst.LIE) ;
+1 tcMonoExpr ::
+ RnHsSyn.RenamedHsExpr
+ -> TcType.TcType
+ -> TcMonad.TcM (TcHsSyn.TcExpr, Inst.LIE) ;
__interface TcExpr 1 0 where
-__export TcExpr tcExpr ;
+__export TcExpr tcExpr tcMonoExpr ;
1 tcExpr ::
RnHsSyn.RenamedHsExpr
-> TcType.TcType
-> TcMonad.TcM (TcHsSyn.TcExpr, Inst.LIE) ;
+1 tcMonoExpr ::
+ RnHsSyn.RenamedHsExpr
+ -> TcType.TcType
+ -> TcMonad.TcM (TcHsSyn.TcExpr, Inst.LIE) ;
#include "HsVersions.h"
-import {-# SOURCE #-} TcExpr( tcExpr )
+import {-# SOURCE #-} TcExpr( tcMonoExpr )
import HsSyn ( HsBinds(..), Match(..), GRHSs(..), GRHS(..),
MonoBinds(..), Stmt(..), HsMatchContext(..), HsDoContext(..),
= tcAddSrcLoc src_loc $
tcAddErrCtxt (stmtCtxt do_or_lc stmt) $
newTyVarTy liftedTypeKind `thenNF_Tc` \ pat_ty ->
- tcExpr exp (m pat_ty) `thenTc` \ (exp', exp_lie) ->
+ tcMonoExpr exp (m pat_ty) `thenTc` \ (exp', exp_lie) ->
tcMatchPats [pat] (mkFunTy pat_ty (m elt_ty)) (\ [pat'] _ ->
tcPopErrCtxt $
thing_inside `thenTc` \ (thing, lie) ->
= tcSetErrCtxt (stmtCtxt do_or_lc stmt) (
if isDoExpr do_or_lc then
newTyVarTy openTypeKind `thenNF_Tc` \ any_ty ->
- tcExpr exp (m any_ty) `thenNF_Tc` \ (exp', lie) ->
+ tcMonoExpr exp (m any_ty) `thenNF_Tc` \ (exp', lie) ->
returnTc (ExprStmt exp' any_ty locn, lie)
else
- tcExpr exp boolTy `thenNF_Tc` \ (exp', lie) ->
+ tcMonoExpr exp boolTy `thenNF_Tc` \ (exp', lie) ->
returnTc (ExprStmt exp' boolTy locn, lie)
) `thenTc` \ (stmt', stmt_lie) ->
tcStmtAndThen combine do_or_lc m_ty@(m, res_elt_ty) stmt@(ResultStmt exp locn) thing_inside
= tcSetErrCtxt (stmtCtxt do_or_lc stmt) (
if isDoExpr do_or_lc then
- tcExpr exp (m res_elt_ty)
+ tcMonoExpr exp (m res_elt_ty)
else
- tcExpr exp res_elt_ty
+ tcMonoExpr exp res_elt_ty
) `thenTc` \ (exp', stmt_lie) ->
thing_inside `thenTc` \ (thing, stmts_lie) ->
import TcType ( tyVarsOfTypes, openTypeKind )
import TcIfaceSig ( tcCoreExpr, tcCoreLamBndrs, tcVar )
import TcMonoType ( tcHsSigType, UserTypeCtxt(..), tcAddScopedTyVars )
-import TcExpr ( tcExpr )
-import TcEnv ( RecTcEnv, tcExtendLocalValEnv, tcLookupId )
+import TcExpr ( tcMonoExpr )
+import TcEnv ( tcExtendLocalValEnv, tcLookupId )
import Inst ( LIE, plusLIEs, emptyLIE, instToId )
import Id ( idName, idType, mkLocalId )
import Outputable
tcExtendLocalValEnv [(idName id, id) | id <- ids] $
-- Now LHS and RHS
- tcExpr lhs rule_ty `thenTc` \ (lhs', lhs_lie) ->
- tcExpr rhs rule_ty `thenTc` \ (rhs', rhs_lie) ->
+ tcMonoExpr lhs rule_ty `thenTc` \ (lhs', lhs_lie) ->
+ tcMonoExpr rhs rule_ty `thenTc` \ (rhs', rhs_lie) ->
returnTc (ids, lhs', rhs', lhs_lie, rhs_lie)
) `thenTc` \ (ids, lhs', rhs', lhs_lie, rhs_lie) ->