我的职责是:
{-# INLINE f #-}
f x =
\ y ->
\z -> ...它是这样定义的(参见关于技巧的GHC博士 ),因为我需要两个阶段的应用程序内联,例如。
comp (f a) ...
...
comp pAppliedF b1 b2 ... =
f'1 = pAppliedF b1 -- I need these 2 functions inlined
f'2 = pAppliedF b2然而,我获得了这样的Core:
fa = \ y z -> ...
...
-- `comp` is inlined
-- Even though there are happy partial applications:
let f'1 = fa smth1
f'2 = fa smth2
in ...怎么才能在这里战胜GHC?
更新
在现实世界中(呵呵):
发布于 2013-02-07 11:14:48
在where子句中为这些定义添加{-#内联f'1 #}和f'2。
https://stackoverflow.com/questions/14748900
复制相似问题