- ; let (result, ds_warns) = initDs dflags us lookup mod_name
- (dsProgram mod_name all_binds rules fo_decls)
- (ds_binds, ds_rules, _, _, _) = result
+ ; let (ds_result, ds_warns) = initDs dflags us lookup mod_name
+ (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 = addCoreBinds ds_binds }