From 15bea1b740be3d5ee755e0e7a7b214b587ad2205 Mon Sep 17 00:00:00 2001 From: Simon Peyton Jones Date: Wed, 20 Apr 2011 12:58:37 +0100 Subject: [PATCH] Comment changes to satisfy Haddock --- compiler/basicTypes/DataCon.lhs | 2 +- compiler/types/TypeRep.lhs | 19 ++++--------------- 2 files changed, 5 insertions(+), 16 deletions(-) diff --git a/compiler/basicTypes/DataCon.lhs b/compiler/basicTypes/DataCon.lhs index fae899d..5e359848 100644 --- a/compiler/basicTypes/DataCon.lhs +++ b/compiler/basicTypes/DataCon.lhs @@ -300,7 +300,7 @@ data DataCon -- the context constrains only universally quantified variables -- MkT :: forall a b. (a ~ b, Ord b) => a -> T a b dcOtherTheta :: ThetaType, -- The other constraints in the data con's type - -- *other than* those in the dcEqSpec + -- other than those in the dcEqSpec dcStupidTheta :: ThetaType, -- The context of the data type declaration -- data Eq a => T a = ... diff --git a/compiler/types/TypeRep.lhs b/compiler/types/TypeRep.lhs index 446341d..c12f9c8 100644 --- a/compiler/types/TypeRep.lhs +++ b/compiler/types/TypeRep.lhs @@ -145,11 +145,12 @@ data Type -- can appear as the right hand side of a type synonym. | FunTy - Type + Type Type -- ^ Special case of 'TyConApp': @TyConApp FunTyCon [t1, t2]@ + -- See Note [Equality-constrained types] | ForAllTy - TyCoVar -- ^ Type *or* coercion variable; see Note [Equality-constrained types] + TyCoVar -- Type variable Type -- ^ A polymorphic type | PredTy @@ -183,21 +184,9 @@ The type forall ab. (a ~ [b]) => blah is encoded like this: ForAllTy (a:*) $ ForAllTy (b:*) $ - ForAllTy (wild_co : a ~ [b]) $ + FunTy (PredTy (EqPred a [b]) $ blah -That is, the "(a ~ [b]) =>" part is encode as a for-all -type with a coercion variable that is never mentioned. - -We could instead have used a FunTy with an EqPred on the -left. But we want - - * FunTy to mean RUN-TIME abstraction, - passing a real value at runtime, - - * ForAllTy to mean COMPILE-TIME abstraction, - erased at runtime - ------------------------------------- Note [PredTy] -- 1.7.10.4