Re: [GHC] #4175: GHCi support for type/data families should match that of related features

#4175: GHCi support for type/data families should match that of related features ---------------------------------+------------------------------------------ Reporter: claus | Owner: Type: bug | Status: patch Priority: low | Milestone: 7.6.2 Component: GHCi | Version: 6.12.3 Keywords: FD TF | Os: Unknown/Multiple Architecture: Unknown/Multiple | Failure: None/Unknown Difficulty: Unknown | Testcase: Blockedby: | Blocking: Related: | ---------------------------------+------------------------------------------ Comment(by parcs): `orphNamesOfClsInst` and `orphNamesOfTyFamInst` collect the names of all the concrete types and type constructors that make up a particular class instance head or family instance head. For example, supposing we have `class Foo a b` and `type family Bar a b`: `instance Foo (Either (Maybe Int) a) Bool where ...` would give `[Either, Maybe, Int, Bool]` `type instance Bar (F (G (H a))) b = ...` would give `[F, G, H]` In `TcRnDriver`, these functions are used to filter the list of in-scope type family instances and class instances, showing only the instances whose heads contain the name that was passed to `:info`. In `InteractiveEval`, the functions are used to filter instances based on whether all their constituent names are currently in scope. So `:i Int` would output the aforementioned class instance since the head of that particular instance contains the name `Int`. Similarly `:i G` would output the above type family instance, but only if `F` and `H` are in scope as well. Note that I didn't change any existing functionality, I only refactored some of the existing code in light of how similar the `:info` logic for type families instances and class instances turned out to be. -- Ticket URL: http://hackage.haskell.org/trac/ghc/ticket/4175#comment:8 GHC http://www.haskell.org/ghc/ The Glasgow Haskell Compiler
participants (1)
-
GHC