Your wish is my IO (). If I break, you can: 1. Restart: M-x haskell-process-restart 2. Configure logging: C-h v haskell-process-log (useful for debugging) 3. General config: M-x customize-mode 4. Hide these tips: C-h v haskell-process-show-debug-tips Changed directory: /home/hugo/Academic/Teaching/_Atual/TCPF/Aulas/ λ> :i Monoid type Monoid :: * -> Constraint class Semigroup a => Monoid a where mempty :: a mappend :: a -> a -> a mconcat :: [a] -> a {-# MINIMAL mempty #-} -- Defined in `GHC.Base' instance Monoid [a] -- Defined in `GHC.Base' instance Monoid a => Monoid (Solo a) -- Defined in `GHC.Base' instance Monoid Ordering -- Defined in `GHC.Base' instance Semigroup a => Monoid (Maybe a) -- Defined in `GHC.Base' instance Monoid a => Monoid (IO a) -- Defined in `GHC.Base' instance Monoid b => Monoid (a -> b) -- Defined in `GHC.Base' instance (Monoid a, Monoid b, Monoid c, Monoid d, Monoid e) => Monoid (a, b, c, d, e) -- Defined in `GHC.Base' instance (Monoid a, Monoid b, Monoid c, Monoid d) => Monoid (a, b, c, d) -- Defined in `GHC.Base' instance (Monoid a, Monoid b, Monoid c) => Monoid (a, b, c) -- Defined in `GHC.Base' instance (Monoid a, Monoid b) => Monoid (a, b) -- Defined in `GHC.Base' instance Monoid () -- Defined in `GHC.Base' λ> :i Semigroup type Semigroup :: * -> Constraint class Semigroup a where (<>) :: a -> a -> a GHC.Base.sconcat :: GHC.Base.NonEmpty a -> a GHC.Base.stimes :: Integral b => b -> a -> a {-# MINIMAL (<>) #-} -- Defined in `GHC.Base' instance Semigroup (Either a b) -- Defined in `Data.Either' instance Semigroup [a] -- Defined in `GHC.Base' instance Semigroup a => Semigroup (Solo a) -- Defined in `GHC.Base' instance Semigroup Ordering -- Defined in `GHC.Base' instance Semigroup a => Semigroup (Maybe a) -- Defined in `GHC.Base' instance Semigroup a => Semigroup (IO a) -- Defined in `GHC.Base' instance Semigroup b => Semigroup (a -> b) -- Defined in `GHC.Base' instance (Semigroup a, Semigroup b, Semigroup c, Semigroup d, Semigroup e) => Semigroup (a, b, c, d, e) -- Defined in `GHC.Base' instance (Semigroup a, Semigroup b, Semigroup c, Semigroup d) => Semigroup (a, b, c, d) -- Defined in `GHC.Base' instance (Semigroup a, Semigroup b, Semigroup c) => Semigroup (a, b, c) -- Defined in `GHC.Base' instance (Semigroup a, Semigroup b) => Semigroup (a, b) -- Defined in `GHC.Base' instance Semigroup () -- Defined in `GHC.Base' λ>