let
sc_theta' = classesOfPreds sc_theta
sc_tys = mkDictTys sc_theta'
- sc_sel_ids = zipWithEqual "tcClassContext" mk_super_id sc_sel_names sc_tys
+ sc_sel_ids = [mkDictSelId sc_name rec_class | sc_name <- sc_sel_names]
in
-- Done
returnTc (sc_theta', sc_tys, sc_sel_ids)
where
rec_tyvar_tys = mkTyVarTys rec_tyvars
- mk_super_id name dict_ty
- = mkDictSelId name rec_class {- SUP:??? ty
- where
- ty = mkForAllTys rec_tyvars $
- mkFunTy (mkDictTy rec_class rec_tyvar_tys) dict_ty -}
-
check_constraint (HsPClass c tys) = checkTc (all is_tyvar tys)
- (superClassErr class_name (c, tys))
+ (superClassErr class_name (c, tys))
is_tyvar (MonoTyVar _) = True
is_tyvar other = False
local_ty
-- Build the selector id and default method id
- sel_id = mkDictSelId op_name rec_clas {- SUP:??? global_ty -}
+ sel_id = mkDictSelId op_name rec_clas
dm_id = mkDefaultMethodId dm_name rec_clas global_ty
final_dm_id = tcAddImportedIdInfo rec_env dm_id
in