-toCore :: HsSyn.HsExpr RdrName.RdrName -> GHC.Ghc CoreSyn.CoreExpr
-toCore expr = do
+toCore ::
+ [Module.ModuleName] -- ^ The modules that need to be imported before translating
+ -- this expression.
+ -> HsSyn.HsExpr RdrName.RdrName -- ^ The expression to translate to Core.
+ -> GHC.Ghc CoreSyn.CoreExpr -- ^ The resulting core expression.
+toCore modules expr = do
-- Translage the TcRn (typecheck-rename) monad into an IO monad
TcRnMonad.initTcPrintErrors env PrelNames.iNTERACTIVE $ do
(tc_expr, insts) <- TcRnMonad.getLIE $ do
-- Translage the TcRn (typecheck-rename) monad into an IO monad
TcRnMonad.initTcPrintErrors env PrelNames.iNTERACTIVE $ do
(tc_expr, insts) <- TcRnMonad.getLIE $ do
-- Rename the expression, resulting in a HsExpr Name
(rn_expr, freevars) <- RnExpr.rnExpr expr
-- Typecheck the expression, resulting in a HsExpr Id and a list of
-- Rename the expression, resulting in a HsExpr Name
(rn_expr, freevars) <- RnExpr.rnExpr expr
-- Typecheck the expression, resulting in a HsExpr Id and a list of