[project @ 1996-07-25 20:43:49 by partain]
[ghc-hetmet.git] / ghc / compiler / simplCore / FoldrBuildWW.lhs
index a456fde..19ec58c 100644 (file)
@@ -8,17 +8,18 @@
 
 module FoldrBuildWW ( mkFoldrBuildWW ) where
 
-import Ubiq{-uitous-}
+IMP_Ubiq(){-uitous-}
 
-import CoreSyn         ( CoreBinding(..) )
+import CoreSyn         ( SYN_IE(CoreBinding) )
+import UniqSupply      ( UniqSupply )
 import Util            ( panic{-ToDo:rm?-} )
 
 --import Type          ( cloneTyVarFromTemplate, mkTyVarTy,
---                       splitTypeWithDictsAsArgs, eqTyCon,  mkForallTy )
+--                       splitFunTyExpandingDicts, eqTyCon,  mkForallTy )
 --import TysPrim               ( alphaTy )
 --import TyVar         ( alphaTyVar )
 --
---import Type          ( Type(..) ) -- **** CAN SEE THE CONSTRUCTORS ****
+--import Type          ( SYN_IE(Type) ) -- **** CAN SEE THE CONSTRUCTORS ****
 --import UniqSupply    ( runBuiltinUs )
 --import WwLib            -- share the same monad (is this eticit ?)
 --import PrelInfo              ( listTyCon, mkListTy, nilDataCon, consDataCon,
@@ -137,7 +138,7 @@ try_split_bind id expr =
        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
@@ -148,17 +149,15 @@ try_split_bind id expr =
 
        worker_ty = mkForallTy (templ  ++ [alphaTyVar])
                        (foldr mkFunTy n_ty_templ (arg_tys++[c_ty_templ,n_ty_templ]))
-       wrapper_id  = id `replaceIdInfo`
-                             (getIdInfo id     `addInfo_UF`
-                              iWantToBeINLINEd UnfoldAlways)
+       wrapper_id  = addInlinePragma id
        worker_id  = mkWorkerId worker_new_uq id worker_ty
                                noIdInfo
                -- TODO : CHECK if mkWorkerId is thr
                -- 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