Commit 32a5c61d authored by chak@cse.unsw.edu.au.'s avatar chak@cse.unsw.edu.au.

Clean up some comments

  MERGE TO 6.10
parent ac7db825
......@@ -1883,7 +1883,9 @@ reduceContext env wanteds0
}
-- Solve the *wanted* *dictionary* constraints (not implications)
-- This may expose some further equational constraints...
-- This may expose some further equational constraints in the course
-- of improvement due to functional dependencies if any of the
-- involved unifications gets deferred.
; let (wanted_implics, wanted_dicts) = partition isImplicInst wanteds'
; (avails, extra_eqs) <- getLIE (reduceList env wanted_dicts init_state)
-- The getLIE is reqd because reduceList does improvement
......
......@@ -231,9 +231,6 @@ tcReduceEqs locals wanteds
We maintain normalised equalities together with the skolems introduced as
intermediates during flattening of equalities as well as
!!!TODO: We probably now can do without the skolem set. It's not used during
finalisation in the current code.
\begin{code}
-- |Configuration of normalised equalities used during solving.
--
......@@ -384,9 +381,6 @@ families. Moreover, in Forms (2) & (3), the left-hand side may not occur in
the right-hand side, and the relation x > y is an arbitrary, but total order
on type variables
!!!TODO: We may need to keep track of swapping for error messages (and to
re-orient on finilisation).
\begin{code}
data RewriteInst
= RewriteVar -- Form (2) above
......@@ -960,9 +954,6 @@ applySubstFam eq1@(RewriteFam {rwi_fam = fam1, rwi_args = args1})
-- rule matches => rewrite
| fam1 == fam2 && tcEqTypes args1 args2 &&
(isWantedRewriteInst eq2 || not (isWantedRewriteInst eq1))
-- !!!TODO: tcEqTypes is insufficient as it does not look through type synonyms
-- !!!Check whether anything breaks by making tcEqTypes look through synonyms.
-- !!!Should be ok and we don't want three type equalities.
= do { co2' <- mkRightTransEqInstCo co2 co1 (lhs, rhs)
; eq2' <- deriveEqInst eq2 lhs rhs co2'
; liftM Just $ normEqInst eq2'
......@@ -1240,7 +1231,7 @@ instantiateAndExtract eqs localsEmpty skolems
| Just tv2 <- tcGetTyVar_maybe ty2
, isMetaTyVar tv2
, mayInst tv2 && (checkingMode || tv2 `elemVarSet` skolems)
-- !!!TODO: this is too liberal, even if tv2 is in
-- !!!FIXME: this is too liberal, even if tv2 is in
-- skolems we shouldn't instantiate if tvs occurs
-- in other equalities that may propagate it into the
-- environment
......
......@@ -1147,14 +1147,16 @@ coreEqType t1 t2
\begin{code}
tcEqType :: Type -> Type -> Bool
-- ^ Type equality on source types. Does not look through @newtypes@ or 'PredType's
-- ^ Type equality on source types. Does not look through @newtypes@ or
-- 'PredType's, but it does look through type synonyms.
tcEqType t1 t2 = isEqual $ cmpType t1 t2
tcEqTypes :: [Type] -> [Type] -> Bool
tcEqTypes tys1 tys2 = isEqual $ cmpTypes tys1 tys2
tcCmpType :: Type -> Type -> Ordering
-- ^ Type ordering on source types. Does not look through @newtypes@ or 'PredType's
-- ^ Type ordering on source types. Does not look through @newtypes@ or
-- 'PredType's, but it does look through type synonyms.
tcCmpType t1 t2 = cmpType t1 t2
tcCmpTypes :: [Type] -> [Type] -> Ordering
......
Markdown is supported
0% or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment