X-Git-Url: http://git.megacz.com/?p=ghc-hetmet.git;a=blobdiff_plain;f=compiler%2Ftypecheck%2FTcRnTypes.lhs;h=eb1cd0427111f1af107c0e4c3a5f65231bed1566;hp=1e03afd5a383bba6f30d3c10acdb3ceb26471b3a;hb=3f1b316d7035c55cd712cd39a9981339bcef2e8c;hpb=deda0c55629600e886f47a5e90bad67953df1ad8 diff --git a/compiler/typecheck/TcRnTypes.lhs b/compiler/typecheck/TcRnTypes.lhs index 1e03afd..eb1cd04 100644 --- a/compiler/typecheck/TcRnTypes.lhs +++ b/compiler/typecheck/TcRnTypes.lhs @@ -1,4 +1,4 @@ -% + % (c) The University of Glasgow 2006 % (c) The GRASP Project, Glasgow University, 1992-2002 % @@ -152,7 +152,7 @@ data TcGblEnv -- (Ids defined in this module start in the local envt, -- though they move to the global envt during zonking) - tcg_type_env_var :: TcRef TypeEnv, + tcg_type_env_var :: TcRef TypeEnv, -- Used only to initialise the interface-file -- typechecker in initIfaceTcRn, so that it can see stuff -- bound in this module when dealing with hi-boot recursions @@ -369,7 +369,7 @@ type ThLevel = Int -- Incremented when going inside a bracket, -- decremented when going inside a splice -- NB: ThLevel is one greater than the 'n' in Fig 2 of the - -- original "Template meta-programmign for Haskell" paper + -- original "Template meta-programming for Haskell" paper impLevel, topLevel :: ThLevel topLevel = 1 -- Things defined at top level of this module @@ -661,7 +661,7 @@ data Inst -- Includes coercion variables -- mentioned in tci_reft tci_reft :: Refinement, - tci_given :: [Inst], -- Only Dicts + tci_given :: [Inst], -- Only Dicts and EqInsts -- (no Methods, LitInsts, ImplicInsts) tci_wanted :: [Inst], -- Only Dicts and ImplicInsts -- (no Methods or LitInsts) @@ -715,23 +715,22 @@ data Inst | EqInst { -- delayed unification of the form -- co :: ty1 ~ ty2 - tci_left :: TcType, -- ty1 - tci_right :: TcType, -- ty2 + tci_left :: TcType, -- ty1 -- both types are... + tci_right :: TcType, -- ty2 -- ...free of boxes tci_co :: Either -- co - TcTyVar -- a wanted equation, with a hole, to be - -- filled with a witness for the equality - -- for equation generated by the - -- unifier, 'ty1' is the actual and - -- 'ty2' the expected type - Coercion, -- a given equation, with a coercion - -- witnessing the equality - -- a coercion that originates from a - -- signature or a GADT is a CoVar, but - -- after normalisation of coercions, - -- they can be arbitrary Coercions - -- involving constructors and - -- pseudo-constructors like sym and - -- trans. + TcTyVar -- - a wanted equation, with a hole, to be + -- filled with a witness for the equality; + -- for equation arising from deferring + -- unification, 'ty1' is the actual and + -- 'ty2' the expected type + Coercion, -- - a given equation, with a coercion + -- witnessing the equality; + -- a coercion that originates from a + -- signature or a GADT is a CoVar, but + -- after normalisation of coercions, they + -- can be arbitrary Coercions involving + -- constructors and pseudo-constructors + -- like sym and trans. tci_loc :: InstLoc, tci_name :: Name -- Debugging help only: this makes it easier to