diff --git a/ghc/compiler/typecheck/TcSimplify.lhs b/ghc/compiler/typecheck/TcSimplify.lhs index 5ef21323df4c4ba77f667288da1eb250c3ebd5eb..d0993bad6c2956b08a91af165b2700a4fec57c39 100644 --- a/ghc/compiler/typecheck/TcSimplify.lhs +++ b/ghc/compiler/typecheck/TcSimplify.lhs @@ -670,9 +670,14 @@ tcSimplifyCheck -- tcSimplifyCheck is used when checking expression type signatures, -- class decls, instance decls etc. --- Note that we psss isFree (not isFreeAndInheritable) to tcSimplCheck +-- +-- NB: we psss isFree (not isFreeAndInheritable) to tcSimplCheck -- It's important that we can float out non-inheritable predicates -- Example: (?x :: Int) is ok! +-- +-- NB: tcSimplifyCheck does not consult the +-- global type variables in the environment; so you don't +-- need to worry about setting them before calling tcSimplifyCheck tcSimplifyCheck doc qtvs givens wanted_lie = tcSimplCheck doc get_qtvs givens wanted_lie `thenTc` \ (qtvs', frees, binds) ->