[commit: ghc] master: Comments only (0f99639)
Simon Peyton Jones
simonpj at microsoft.com
Mon Aug 22 13:17:45 CEST 2011
Repository : ssh://darcs.haskell.org//srv/darcs/ghc
On branch : master
http://hackage.haskell.org/trac/ghc/changeset/0f996392cf844592addde3404a94f567e2acc4ba
>---------------------------------------------------------------
commit 0f996392cf844592addde3404a94f567e2acc4ba
Author: Simon Peyton Jones <simonpj at microsoft.com>
Date: Mon Aug 22 08:58:24 2011 +0100
Comments only
>---------------------------------------------------------------
compiler/typecheck/TcTyClsDecls.lhs | 2 ++
1 files changed, 2 insertions(+), 0 deletions(-)
diff --git a/compiler/typecheck/TcTyClsDecls.lhs b/compiler/typecheck/TcTyClsDecls.lhs
index 11c2930..b7dc847 100644
--- a/compiler/typecheck/TcTyClsDecls.lhs
+++ b/compiler/typecheck/TcTyClsDecls.lhs
@@ -1178,6 +1178,7 @@ E.g.
data T where
T1 { f :: Maybe a } :: T [a]
T2 { f :: Maybe a, y :: b } :: T [a]
+ T3 :: T Int
and now the selector takes that result type as its argument:
f :: forall a. T [a] -> Maybe a
@@ -1192,6 +1193,7 @@ So the selector loooks like this:
= case t of
T1 c (g:[a]~[c]) (v:Maybe c) -> v `cast` Maybe (right (sym g))
T2 c d (g:[a]~[c]) (v:Maybe c) (w:d) -> v `cast` Maybe (right (sym g))
+ T3 -> error "T3 does not have field f"
Note the forall'd tyvars of the selector are just the free tyvars
of the result type; there may be other tyvars in the constructor's
More information about the Cvs-ghc
mailing list