Re: [GHC] #2986: :info printing instances often isn't wanted

#2986: :info printing instances often isn't wanted -------------------------------------+------------------------------------- Reporter: Remi | Owner: Remi Type: feature | Status: new request | Milestone: 7.10.1 Priority: lowest | Version: 6.10.1 Component: GHCi | Keywords: :info instances Resolution: | Architecture: Unknown/Multiple Operating System: | Difficulty: Unknown Unknown/Multiple | Blocked By: Type of failure: | Related Tickets: None/Unknown | Test Case: | Blocking: | Differential Revisions: | -------------------------------------+------------------------------------- Comment (by Remi): Thanks for reminding that I want this feature, hvr :) I had an unexpected day off work and decided to finally dig up and work a bit on that patch: {{{ Prelude> :info Maybe Monad data Maybe a = Nothing | Just a -- Defined in ‘GHC.Base’ Use `:instances Maybe' to see its 10 instance(s) class Applicative m => Monad (m :: * -> *) where (>>=) :: m a -> (a -> m b) -> m b (>>) :: m a -> m b -> m b return :: a -> m a fail :: String -> m a -- Defined in ‘GHC.Base’ Use `:instances Monad' to see its 5 instance(s) }}} And for instances: {{{ Prelude> :instances Maybe Monad instance Eq a => Eq (Maybe a) -- Defined in ‘GHC.Base’ instance Monad Maybe -- Defined in ‘GHC.Base’ instance Functor Maybe -- Defined in ‘GHC.Base’ instance Ord a => Ord (Maybe a) -- Defined in ‘GHC.Base’ instance Read a => Read (Maybe a) -- Defined in ‘GHC.Read’ instance Show a => Show (Maybe a) -- Defined in ‘GHC.Show’ instance Applicative Maybe -- Defined in ‘GHC.Base’ instance Foldable Maybe -- Defined in ‘Data.Foldable’ instance Traversable Maybe -- Defined in ‘Data.Traversable’ instance Monoid a => Monoid (Maybe a) -- Defined in ‘GHC.Base’ instance Monad (Either e) -- Defined in ‘Data.Either’ instance Monad [] -- Defined in ‘GHC.Base’ instance Monad Maybe -- Defined in ‘GHC.Base’ instance Monad IO -- Defined in ‘GHC.Base’ instance Monad ((->) r) -- Defined in ‘GHC.Base’ }}} {{{ Prelude> :instances! Monad instance Monad Data.Functor.Identity.Identity -- Defined in ‘Data.Functor.Identity’ instance Monad Data.Monoid.Last -- Defined in ‘Data.Monoid’ instance Monad Data.Monoid.First -- Defined in ‘Data.Monoid’ instance Monad f => Monad (Data.Monoid.Alt f) -- Defined in ‘Data.Monoid’ instance Monad Text.ParserCombinators.ReadPrec.ReadPrec -- Defined in ‘Text.ParserCombinators.ReadPrec’ instance Monad (GHC.ST.ST s) -- Defined in ‘GHC.ST’ instance Control.Arrow.ArrowApply a => Monad (Control.Arrow.ArrowMonad a) -- Defined in ‘Control.Arrow’ instance Monad m => Monad (Control.Applicative.WrappedMonad m) -- Defined in ‘Control.Applicative’ instance Monad Data.Proxy.Proxy -- Defined in ‘Data.Proxy’ instance Monad Text.ParserCombinators.ReadP.ReadP -- Defined in ‘Text.ParserCombinators.ReadP’ instance Monad Text.ParserCombinators.ReadP.P -- Defined in ‘Text.ParserCombinators.ReadP’ instance Monad (Either e) -- Defined in ‘Data.Either’ instance Monad [] -- Defined in ‘GHC.Base’ instance Monad Maybe -- Defined in ‘GHC.Base’ instance Monad IO -- Defined in ‘GHC.Base’ instance Monad ((->) r) -- Defined in ‘GHC.Base’ instance Data.Typeable.Internal.Typeable Monad -- Defined in ‘Data.Typeable.Internal’ }}} What it doesn't support is at least: {{{ Prelude> :set -XDataKinds Prelude> :instances Just `Just' is not a type or class Prelude> :instances 'Just <interactive>:1:1: parse error on input ‘'’ Prelude> :k 'Just 'Just :: k -> Maybe k Prelude> :k Just Just :: k -> Maybe k }}} However, :info doesn't support it either, so I don't think that's that much of an issue right now: {{{ Prelude> :info 'Just <interactive>:1:1: parse error on input ‘'’ }}} -- Ticket URL: http://ghc.haskell.org/trac/ghc/ticket/2986#comment:27 GHC http://www.haskell.org/ghc/ The Glasgow Haskell Compiler
participants (1)
-
GHC