- -- Common case: one exported variable
- -- All non-recursive bindings come through this way
-dsMonoBinds auto_scc (AbsBinds all_tyvars dicts exps@[(tyvars, global, local)] inlines binds) rest
+ -- Common special case: no type or dictionary abstraction
+dsMonoBinds auto_scc (AbsBinds [] [] exports inlines binds) rest
+ = dsMonoBinds (addSccs auto_scc exports) binds []`thenDs` \ core_prs ->
+ let
+ exports' = [(global, Var local) | (_, global, local) <- exports]
+ in
+ returnDs (addLocalInlines exports inlines core_prs ++ exports' ++ rest)
+
+ -- Another common case: one exported variable
+ -- Non-recursive bindings come through this way
+dsMonoBinds auto_scc
+ (AbsBinds all_tyvars dicts exps@[(tyvars, global, local)] inlines binds) rest