module FoldrBuildWW ( mkFoldrBuildWW ) where
-import Ubiq{-uitous-}
+IMP_Ubiq(){-uitous-}
import CoreSyn ( CoreBinding(..) )
import Util ( panic{-ToDo:rm?-} )
--import Type ( cloneTyVarFromTemplate, mkTyVarTy,
--- splitTypeWithDictsAsArgs, eqTyCon, mkForallTy )
+-- splitFunTyExpandingDicts, eqTyCon, mkForallTy )
--import TysPrim ( alphaTy )
--import TyVar ( alphaTyVar )
--
n_ty = alphaTy
n_ty_templ = alphaTy
- (templ,arg_tys,res) = splitTypeWithDictsAsArgs (idType id)
+ (templ,arg_tys,res) = splitFunTyExpandingDicts (idType id)
expr_ty = getListTy res
getListTy res = panic "FoldrBuildWW:getListTy:ToDo" {-LATER:case res of
UniData lty [ty] | lty `eqTyCon` listTyCon -> ty
-- right function to use ..
-- Now the bodies
- c_id = mkSysLocal SLIT("_fbww") c_new_uq c_ty mkUnknownSrcLoc
- n_id = mkSysLocal SLIT("_fbww") n_new_uq n_ty mkUnknownSrcLoc
+ c_id = mkSysLocal SLIT("fbww") c_new_uq c_ty mkUnknownSrcLoc
+ n_id = mkSysLocal SLIT("fbww") n_new_uq n_ty mkUnknownSrcLoc
worker_rhs
= mkTyLam [] (big_args ++ [alphaTyVar]) (args++[c_id,n_id]) worker_body