Skip to content

Add GHCi :instances command.

xldenis requested to merge xldenis/ghc:ghci-instances into master

This MR implements Proposal 41.

It adds the :instances command to GHCi, allowing us to query GHC for the instances a type can use along with the constraints we need to satisfy in order to use them.

Here's an example query:

>:instances Compose _ Maybe
instance GHC.Base.Alternative _ => GHC.Base.Alternative (Compose _ Maybe)
  -- Defined in ‘Data.Functor.Compose’
instance Applicative _ => Applicative (Compose _ Maybe)
  -- Defined in ‘Data.Functor.Compose’
instance Functor _ => Functor (Compose _ Maybe)
  -- Defined in ‘Data.Functor.Compose’
instance Data.Functor.Classes.Eq1 _ =>
         Data.Functor.Classes.Eq1 (Compose _ Maybe)
  -- Defined in ‘Data.Functor.Compose’
instance Foldable _ => Foldable (Compose _ Maybe)
  -- Defined in ‘Data.Functor.Compose’
instance Data.Functor.Classes.Ord1 _ =>
         Data.Functor.Classes.Ord1 (Compose _ Maybe)
  -- Defined in ‘Data.Functor.Compose’
instance Data.Functor.Classes.Read1 _ =>
         Data.Functor.Classes.Read1 (Compose _ Maybe)
  -- Defined in ‘Data.Functor.Compose’
instance Data.Functor.Classes.Show1 _ =>
         Data.Functor.Classes.Show1 (Compose _ Maybe)
  -- Defined in ‘Data.Functor.Compose’
instance Traversable _ => Traversable (Compose _ Maybe)
  -- Defined in ‘Data.Functor.Compose’
Edited by xldenis

Merge request reports