import BasicTypes ( Boxity(..) )
import TyCon ( tyConName )
import HsSyn ( Pat(..), HsExpr(..), Stmt(..),
import BasicTypes ( Boxity(..) )
import TyCon ( tyConName )
import HsSyn ( Pat(..), HsExpr(..), Stmt(..),
collectHsBinders )
import TcHsSyn ( TypecheckedStmt, TypecheckedPat, TypecheckedHsExpr,
hsPatType )
collectHsBinders )
import TcHsSyn ( TypecheckedStmt, TypecheckedPat, TypecheckedHsExpr,
hsPatType )
pat core_rest (Var b) `thenDs` \ core_expr ->
-- now build the outermost foldr, and return
pat core_rest (Var b) `thenDs` \ core_expr ->
-- now build the outermost foldr, and return
let cef = mkApps (Var filterP) [Type ty'ce, mkLams [v] pred, ce]
ty'cef = ty'ce -- filterP preserves the type
pa' = TuplePat [pa, p] Boxed
let cef = mkApps (Var filterP) [Type ty'ce, mkLams [v] pred, ce]
ty'cef = ty'ce -- filterP preserves the type
pa' = TuplePat [pa, p] Boxed
errMsg = "DsListComp.dePArrComp: internal error!"
in
mkErrorAppDs pAT_ERROR_ID errTy errMsg `thenDs` \cerr ->
errMsg = "DsListComp.dePArrComp: internal error!"
in
mkErrorAppDs pAT_ERROR_ID errTy errMsg `thenDs` \cerr ->
errMsg = "DsListComp.deLambda: internal error!"
in
mkErrorAppDs pAT_ERROR_ID errTy errMsg `thenDs` \cerr ->
errMsg = "DsListComp.deLambda: internal error!"
in
mkErrorAppDs pAT_ERROR_ID errTy errMsg `thenDs` \cerr ->
returnDs (mkLams [v] res, errTy)
-- obtain the element type of the parallel array produced by the given Core
returnDs (mkLams [v] res, errTy)
-- obtain the element type of the parallel array produced by the given Core