-lookup_val rdr check do_err down@(RnDown _ _ locn (RnIface imp_var) env us_var _)
- = case lookupRnEnv env rdr of
- Just name | check name -> returnSST name
- | otherwise -> failButContinueRn (mkRnUnbound rdr) (do_err rdr locn) down
- Nothing -> lookup_or_create_implicit_val imp_var us_var rdr
+lookup_val rdr lookup check do_err down@(RnDown _ _ locn (RnIface b_names b_key imp_var) env us_var _)
+ = case lookup env rdr of
+ Just name -> returnSST name
+ Nothing -> lookup_nonexisting_val b_names b_key imp_var us_var rdr
+
+lookup_nonexisting_val (b_names,_) b_key imp_var us_var rdr
+ = case rdr of
+ Qual _ _ -> -- builtin things *don't* have Qual names
+ lookup_or_create_implicit_val b_key imp_var us_var rdr
+
+ Unqual n -> case (lookupFM b_names n) of
+ Nothing -> lookup_or_create_implicit_val b_key imp_var us_var rdr
+ Just xx -> returnSST xx