[GHC] #8535: :info (->) doesn't print all relevant instances
GHC
ghc-devs at haskell.org
Fri Nov 15 03:19:54 UTC 2013
#8535: :info (->) doesn't print all relevant instances
-------------------------------------+------------------------------------
Reporter: parcs | Owner:
Type: bug | Status: patch
Priority: normal | Milestone:
Component: GHCi | Version: 7.6.3
Resolution: | Keywords:
Operating System: Unknown/Multiple | Architecture: Unknown/Multiple
Type of failure: None/Unknown | Difficulty: Unknown
Test Case: | Blocked By:
Blocking: | Related Tickets:
-------------------------------------+------------------------------------
Changes (by parcs):
* status: new => patch
Comment:
Here's a validated diff that fixes this issue:
{{{
#!diff
diff --git a/compiler/typecheck/TcType.lhs b/compiler/typecheck/TcType.lhs
index 9ccb08a..430dfb0 100644
--- a/compiler/typecheck/TcType.lhs
+++ b/compiler/typecheck/TcType.lhs
@@ -1316,7 +1316,9 @@ orphNamesOfType (TyVarTy _) =
emptyNameSet
orphNamesOfType (TyConApp tycon tys) = orphNamesOfTyCon tycon
`unionNameSets`
orphNamesOfTypes tys
orphNamesOfType (LitTy {}) = emptyNameSet
-orphNamesOfType (FunTy arg res) = orphNamesOfType arg `unionNameSets`
orphNamesOfType res
+orphNamesOfType (FunTy arg res) = orphNamesOfTyCon funTyCon
`unionNameSets`
+ orphNamesOfType arg
`unionNameSets`
+ orphNamesOfType res
orphNamesOfType (AppTy fun arg) = orphNamesOfType fun `unionNameSets`
orphNamesOfType arg
orphNamesOfType (ForAllTy _ ty) = orphNamesOfType ty
}}}
I am not sure how this diff affects the other callers (aside from the
":info" machinery, that is) of `orphNamesOfType`. It passes validation,
at least.
--
Ticket URL: <http://ghc.haskell.org/trac/ghc/ticket/8535#comment:1>
GHC <http://www.haskell.org/ghc/>
The Glasgow Haskell Compiler
More information about the ghc-tickets
mailing list