title: How do I find information of an instance in ghci?
body: <p>I can see data constructor and instances for, say <code>Maybe</code> in ghci:</p>
  
  <pre><code>Prelude Control.Applicative&gt; :i Maybe
  data Maybe a = Nothing | Just a     -- Defined in `Data.Maybe'
  instance Eq a =&gt; Eq (Maybe a) -- Defined in `Data.Maybe'
  instance Monad Maybe -- Defined in `Data.Maybe'
  instance Functor Maybe -- Defined in `Data.Maybe'
  instance Ord a =&gt; Ord (Maybe a) -- Defined in `Data.Maybe'
  instance Read a =&gt; Read (Maybe a) -- Defined in `GHC.Read'
  instance Show a =&gt; Show (Maybe a) -- Defined in `GHC.Show'
  instance Applicative Maybe -- Defined in `Control.Applicative'
  instance Alternative Maybe -- Defined in `Control.Applicative'
  </code></pre>
  
  <p>and I can see how <code>Applicative</code> typeclass defined in ghci, too:</p>
  
  <pre><code>Prelude Control.Applicative&gt; :i Applicative
  class Functor f =&gt; Applicative f where
    pure :: a -&gt; f a
    (&lt;*&gt;) :: f (a -&gt; b) -&gt; f a -&gt; f b
    (*&gt;) :: f a -&gt; f b -&gt; f b
    (&lt;*) :: f a -&gt; f b -&gt; f a
      -- Defined in `Control.Applicative'
  instance Applicative [] -- Defined in `Control.Applicative'
  instance Applicative ZipList -- Defined in `Control.Applicative'
  instance Monad m =&gt; Applicative (WrappedMonad m)
    -- Defined in `Control.Applicative'
  instance Applicative Maybe -- Defined in `Control.Applicative'
  instance Applicative IO -- Defined in `Control.Applicative'
  instance Applicative (Either e) -- Defined in `Control.Applicative'
  instance Applicative ((-&gt;) a) -- Defined in `Control.Applicative'
  </code></pre>
  
  <p>but How can I find information <em>about specific instances</em> of a type, say <code>instance Alternative Maybe</code> ?</p>