-- test :browse! functionality :browse! *T -- defined locally T.length :: T.Integer type N :: * -> Constraint class N a type S :: * -> Constraint class S a type C :: * -> * -> Constraint class C a b ... c1 :: (C a b, N b) => a -> b c2 :: (C a b, N b, S b) => a -> b c3 :: C a b => a -> b c4 :: C a b => a1 -> b -- imported via Control.Monad type MonadPlus :: (* -> *) -> Constraint class (GHC.Base.Alternative m, Monad m) => MonadPlus m ... mplus :: MonadPlus m => m a -> m a -> m a mzero :: MonadPlus m => m a -- imported via Control.Monad, Prelude (>>) :: Monad m => m a -> m b -> m b (>>=) :: Monad m => m a -> (a -> m b) -> m b return :: Monad m => a -> m a -- imported via Control.Monad, Prelude, T type Monad :: (* -> *) -> Constraint class GHC.Base.Applicative m => Monad m ... -- imported via Data.Maybe catMaybes :: [Maybe a] -> [a] fromJust :: GHC.Stack.Types.HasCallStack => Maybe a -> a fromMaybe :: a -> Maybe a -> a isJust :: Maybe a -> GHC.Types.Bool isNothing :: Maybe a -> GHC.Types.Bool listToMaybe :: [a] -> Maybe a mapMaybe :: (a -> Maybe b) -> [a] -> [b] maybe :: b -> (a -> b) -> Maybe a -> b maybeToList :: Maybe a -> [a] -- imported via Data.Maybe, Prelude Just :: a -> Maybe a type Maybe :: * -> * data Maybe a = ... Nothing :: Maybe a -- imported via Prelude (+) :: GHC.Num.Num a => a -> a -> a (=<<) :: Monad m => (a -> m b) -> m a -> m b type Eq :: * -> Constraint class Eq a ... -- imported via Prelude, T Prelude.length :: Data.Foldable.Foldable t => t a -> GHC.Types.Int -- imported via T type T.Integer :: * data T.Integer = ... T.length :: Data.ByteString.Internal.ByteString -> GHC.Types.Int :browse! T -- defined locally T.length :: T.Integer type N :: * -> Constraint class N a type S :: * -> Constraint class S a type C :: * -> * -> Constraint class C a b ... c1 :: (C a b, N b) => a -> b c2 :: (C a b, N b, S b) => a -> b c3 :: C a b => a -> b c4 :: C a b => a1 -> b :browse! T -- with -fprint-explicit-foralls -- defined locally T.length :: T.Integer type N :: * -> Constraint class N a type S :: * -> Constraint class S a type C :: * -> * -> Constraint class C a b ... c1 :: forall a b. (C a b, N b) => a -> b c2 :: forall a b. (C a b, N b, S b) => a -> b c3 :: forall a b a. C a b => a -> b c4 :: forall a b a1. C a b => a1 -> b -- test :browse! relative to different contexts :browse! Ghci025C -- from *Ghci025C> -- defined locally g :: forall {a}. Num a => a -> a h :: forall {a}. Integral a => a -> a -- imported via Ghci025D f :: forall {a}. Num a => a -> a :browse! Ghci025C -- from *Ghci025B>, after :add Ghci025B -- imported via Ghci025C g :: forall {a}. Num a => a -> a h :: forall {a}. Integral a => a -> a f :: forall {a}. Num a => a -> a :browse! Ghci025C -- from *Ghci025C>, after :m *Ghci025C -- defined locally g :: forall {a}. Num a => a -> a h :: forall {a}. Integral a => a -> a -- imported via Ghci025D f :: forall {a}. Num a => a -> a :browse! Ghci025C -- from *Ghci025D>, after :m *Ghci025D -- not currently imported Ghci025C.g :: forall {a}. Num a => a -> a Ghci025C.h :: forall {a}. Integral a => a -> a -- defined locally f :: forall {a}. Num a => a -> a