projects
/
ghc-hetmet.git
/ blobdiff
commit
grep
author
committer
pickaxe
?
search:
re
summary
|
shortlog
|
log
|
commit
|
commitdiff
|
tree
raw
|
inline
| side by side
Don't import FastString in HsVersions.h
[ghc-hetmet.git]
/
compiler
/
typecheck
/
TcRnTypes.lhs
diff --git
a/compiler/typecheck/TcRnTypes.lhs
b/compiler/typecheck/TcRnTypes.lhs
index
0012325
..
a33faa1
100644
(file)
--- a/
compiler/typecheck/TcRnTypes.lhs
+++ b/
compiler/typecheck/TcRnTypes.lhs
@@
-53,7
+53,6
@@
import Packages
import Type
import Coercion
import TcType
import Type
import Coercion
import TcType
-import TcGadt
import InstEnv
import FamInstEnv
import IOEnv
import InstEnv
import FamInstEnv
import IOEnv
@@
-64,7
+63,7
@@
import NameSet
import Var
import VarEnv
import Module
import Var
import VarEnv
import Module
-import UniqFM
+import LazyUniqFM
import SrcLoc
import VarSet
import ErrUtils
import SrcLoc
import VarSet
import ErrUtils
@@
-75,6
+74,7
@@
import Bag
import Outputable
import ListSetOps
import FiniteMap
import Outputable
import ListSetOps
import FiniteMap
+import FastString
import Data.Maybe
import Data.List
import Data.Maybe
import Data.List
@@
-318,8
+318,8
@@
data TcLclEnv -- Changes as we move inside an expression
tcl_ctxt :: ErrCtxt, -- Error context
tcl_errs :: TcRef Messages, -- Place to accumulate errors
tcl_ctxt :: ErrCtxt, -- Error context
tcl_errs :: TcRef Messages, -- Place to accumulate errors
- tcl_th_ctxt :: ThStage, -- Template Haskell context
- tcl_arrow_ctxt :: ArrowCtxt, -- Arrow-notation context
+ tcl_th_ctxt :: ThStage, -- Template Haskell context
+ tcl_arrow_ctxt :: ArrowCtxt, -- Arrow-notation context
tcl_rdr :: LocalRdrEnv, -- Local name envt
-- Maintained during renaming, of course, but also during
tcl_rdr :: LocalRdrEnv, -- Local name envt
-- Maintained during renaming, of course, but also during
@@
-632,7
+632,7
@@
type Int, represented by
Method 34 doubleId [Int] origin
In addition to the basic Haskell variants of 'Inst's, they can now also
Method 34 doubleId [Int] origin
In addition to the basic Haskell variants of 'Inst's, they can now also
-represent implication constraints 'forall tvs. (reft, given) => wanted'
+represent implication constraints 'forall tvs. given => wanted'
and equality constraints 'co :: ty1 ~ ty2'.
NB: Equalities occur in two flavours:
and equality constraints 'co :: ty1 ~ ty2'.
NB: Equalities occur in two flavours:
@@
-655,22
+655,17
@@
data Inst
}
| ImplicInst { -- An implication constraint
}
| ImplicInst { -- An implication constraint
- -- forall tvs. (reft, given) => wanted
+ -- forall tvs. given => wanted
tci_name :: Name,
tci_tyvars :: [TcTyVar], -- Quantified type variables
tci_name :: Name,
tci_tyvars :: [TcTyVar], -- Quantified type variables
- -- Includes coercion variables
- -- mentioned in tci_reft
- tci_reft :: Refinement,
tci_given :: [Inst], -- Only Dicts and EqInsts
-- (no Methods, LitInsts, ImplicInsts)
tci_given :: [Inst], -- Only Dicts and EqInsts
-- (no Methods, LitInsts, ImplicInsts)
- tci_wanted :: [Inst], -- Only Dicts and ImplicInsts
+ tci_wanted :: [Inst], -- Only Dicts, EqInst, and ImplicInsts
-- (no Methods or LitInsts)
tci_loc :: InstLoc
}
-- (no Methods or LitInsts)
tci_loc :: InstLoc
}
- -- NB: the tci_given are not necessarily rigid,
- -- although they will be if the tci_reft is non-trivial
- -- NB: the tci_reft is already applied to tci_given and tci_wanted
+ -- NB: the tci_given are not necessarily rigid
| Method {
tci_id :: TcId, -- The Id for the Inst
| Method {
tci_id :: TcId, -- The Id for the Inst