- get_item :: IE RdrName -> RnM [(AvailInfo, [Name])]
- -- Empty list for a bad item.
- -- Singleton is typical case.
+ succeed_with :: Bool -> AvailInfo -> RnM (AvailEnv, GlobalRdrEnv)
+ succeed_with all_explicit avail
+ = do { loc <- getSrcSpanM
+ ; returnM (unitAvailEnv avail,
+ mkGlobalRdrEnv (map (mk_gre loc) (availNames avail))) }
+ where
+ mk_gre loc name = GRE { gre_name = name,
+ gre_prov = Imported [this_imp_spec loc] (explicit name),
+ gre_deprec = mk_deprec name }
+ this_imp_spec loc = imp_spec { is_loc = loc }
+ explicit name = all_explicit || name == main_name
+ main_name = availName avail
+
+ get_item :: IE RdrName -> RnM (AvailEnv, GlobalRdrEnv)
+ -- Empty result for a bad item.
+ -- Singleton result is typical case.