X-Git-Url: http://git.megacz.com/?a=blobdiff_plain;f=compiler%2Ftypecheck%2FTcGadt.lhs;h=4cd7e004b2a210efede13796de9c0e85d2446c97;hb=fc867aa70e3bc8753287cf1f5e9a5adb05c38dc6;hp=3761c68fada484fa600e215005bb306fbcaf7f36;hpb=e68a891932d615590d9b1ab5752ada8142db5053;p=ghc-hetmet.git diff --git a/compiler/typecheck/TcGadt.lhs b/compiler/typecheck/TcGadt.lhs index 3761c68..4cd7e00 100644 --- a/compiler/typecheck/TcGadt.lhs +++ b/compiler/typecheck/TcGadt.lhs @@ -14,7 +14,6 @@ module TcGadt ( Refinement, emptyRefinement, isEmptyRefinement, gadtRefine, refineType, refinePred, refineResType, - dataConCanMatch, tcUnifyTys, BindFlag(..) ) where @@ -242,29 +241,10 @@ fixTvSubstEnv in_scope env fixpt = mapVarEnv (substTy (mkTvSubst in_scope fixpt)) env ---------------------------- -dataConCanMatch :: [Type] -> DataCon -> Bool --- Returns True iff the data con can match a scrutinee of type (T tys) --- where T is the type constructor for the data con --- --- Instantiate the equations and try to unify them -dataConCanMatch tys con - | null eq_spec = True -- Common - | all isTyVarTy tys = True -- Also common - | otherwise - = isJust (tcUnifyTys (\tv -> BindMe) - (map (substTyVar subst . fst) eq_spec) - (map snd eq_spec)) - where - dc_tvs = dataConUnivTyVars con - eq_spec = dataConEqSpec con - subst = zipTopTvSubst dc_tvs tys - ----------------------------- tryToBind :: TyVarSet -> TyVar -> BindFlag tryToBind tv_set tv | tv `elemVarSet` tv_set = BindMe | otherwise = AvoidMe - \end{code}