X-Git-Url: http://git.megacz.com/?p=ghc-hetmet.git;a=blobdiff_plain;f=compiler%2Fstranal%2FWorkWrap.lhs;fp=compiler%2Fstranal%2FWorkWrap.lhs;h=5cf5e9269266b4c4bfebc2b2f8a2f1660e427d39;hp=d566d9879fe2d4057969c74e326abb9bfebd7054;hb=7a50e6d8f9464090ade6d624448fac770172cf95;hpb=6815209779aeeedc5d9b79e7c16238c4c658230b diff --git a/compiler/stranal/WorkWrap.lhs b/compiler/stranal/WorkWrap.lhs index d566d98..5cf5e92 100644 --- a/compiler/stranal/WorkWrap.lhs +++ b/compiler/stranal/WorkWrap.lhs @@ -425,6 +425,11 @@ then the splitting will go deeper too. -- in case x of -- I# y -> let x = I# y in x } -- See comments above. Is it not beautifully short? +-- Moreover, it works just as well when there are +-- several binders, and if the binders are lifted +-- E.g. x = e +-- --> x = let x = e in +-- case x of (a,b) -> let x = (a,b) in x splitThunk :: Var -> Expr Var -> UniqSM [(Var, Expr Var)] splitThunk fn_id rhs = do