projects
/
ghc-hetmet.git
/ blobdiff
commit
grep
author
committer
pickaxe
?
search:
re
summary
|
shortlog
|
log
|
commit
|
commitdiff
|
tree
raw
|
inline
| side by side
White space only
[ghc-hetmet.git]
/
compiler
/
typecheck
/
TcInstDcls.lhs
diff --git
a/compiler/typecheck/TcInstDcls.lhs
b/compiler/typecheck/TcInstDcls.lhs
index
9ef0376
..
d314e1e
100644
(file)
--- a/
compiler/typecheck/TcInstDcls.lhs
+++ b/
compiler/typecheck/TcInstDcls.lhs
@@
-179,7
+179,10
@@
tcInstDecls1 tycl_decls inst_decls deriv_decls
-- (4) Compute instances from "deriving" clauses;
-- This stuff computes a context for the derived instance
-- decl, so it needs to know about all the instances possible
-- (4) Compute instances from "deriving" clauses;
-- This stuff computes a context for the derived instance
-- decl, so it needs to know about all the instances possible
- ; (deriv_inst_info, deriv_binds) <- tcDeriving tycl_decls deriv_decls
+ -- NB: class instance declarations can contain derivings as
+ -- part of associated data type declarations
+ ; (deriv_inst_info, deriv_binds) <- tcDeriving tycl_decls inst_decls
+ deriv_decls
; addInsts deriv_inst_info $ do {
; gbl_env <- getGblEnv
; addInsts deriv_inst_info $ do {
; gbl_env <- getGblEnv
@@
-252,7
+255,7
@@
tcLocalInstDecl1 decl@(L loc (InstDecl poly_ty binds uprags ats))
-- Finally, construct the Core representation of the instance.
-- (This no longer includes the associated types.)
-- Finally, construct the Core representation of the instance.
-- (This no longer includes the associated types.)
- ; dfun_name <- newDFunName clas inst_tys (srcSpanStart loc)
+ ; dfun_name <- newDFunName clas inst_tys loc
; overlap_flag <- getOverlapFlag
; let dfun = mkDictFunId dfun_name tyvars theta clas inst_tys
ispec = mkLocalInstance dfun overlap_flag
; overlap_flag <- getOverlapFlag
; let dfun = mkDictFunId dfun_name tyvars theta clas inst_tys
ispec = mkLocalInstance dfun overlap_flag