X-Git-Url: http://git.megacz.com/?a=blobdiff_plain;f=ghc%2Fcompiler%2FdeSugar%2FDesugar.lhs;h=07f8f3257795201a2f01957bc7aac8ae9d0ddacb;hb=76293b141bba4c15a6fd619dd980502e98614790;hp=5cece7ac4d6b4c85e5eab7c1dedcb4f8f20a46a9;hpb=57f838974862a6ba2772541318d1dfdeff51cefd;p=ghc-hetmet.git diff --git a/ghc/compiler/deSugar/Desugar.lhs b/ghc/compiler/deSugar/Desugar.lhs index 5cece7a..07f8f32 100644 --- a/ghc/compiler/deSugar/Desugar.lhs +++ b/ghc/compiler/deSugar/Desugar.lhs @@ -54,11 +54,12 @@ deSugar :: DynFlags -> IO (ModDetails, (SDoc, SDoc, [FAST_STRING], [CoreBndr])) deSugar dflags pcs hst mod_name unqual - (TcResults {tc_env = type_env, - tc_binds = all_binds, - tc_insts = insts, - tc_rules = rules, - tc_fords = fo_decls}) + (TcResults {tc_env = type_env, + tc_binds = all_binds, + tc_insts = insts, + tc_rules = rules, + tc_cbinds = core_binds, + tc_fords = fo_decls}) = do { showPass dflags "Desugar" ; us <- mkSplitUniqSupply 'd' @@ -67,11 +68,16 @@ deSugar dflags pcs hst mod_name unqual (dsProgram mod_name all_binds rules fo_decls) (ds_binds, ds_rules, foreign_stuff) = ds_result + + addCoreBinds ls = + case core_binds of + [] -> ls + cs -> (Rec cs) : ls mod_details = ModDetails { md_types = type_env, md_insts = insts, md_rules = ds_rules, - md_binds = ds_binds } + md_binds = addCoreBinds ds_binds } -- Display any warnings ; doIfSet (not (isEmptyBag ds_warns))