Add GHCi :instances command.
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