-- Hoogle documentation, generated by Haddock
-- See Hoogle, http://www.haskell.org/hoogle/


-- | Send textual messages to a Handle in a thread-friendly way
--   
--   Please see the README and documentation at
--   <a>https://www.stackage.org/package/say</a>
@package say
@version 0.1.0.1

module Say

-- | Send a <a>Text</a> to standard output, appending a newline, and
--   chunking the data. By default, the chunk size is 2048 characters, so
--   any messages below that size will be sent as one contiguous unit. If
--   larger messages are used, it is possible for interleaving with other
--   threads to occur.
say :: MonadIO m => Text -> m ()

-- | Same as <a>say</a>, but operates on a <a>String</a>. Note that this
--   will force the entire <tt>String</tt> into memory at once, and will
--   fail for infinite <tt>String</tt>s.
sayString :: MonadIO m => String -> m ()

-- | Same as <a>say</a>, but for instances of <a>Show</a>.
--   
--   If your <tt>Show</tt> instance generates infinite output, this will
--   fail. However, an infinite result for <tt>show</tt> would generally be
--   considered an invalid instance anyway.
sayShow :: (MonadIO m, Show a) => a -> m ()

-- | Same as <a>say</a>, but data is sent to standard error.
sayErr :: MonadIO m => Text -> m ()

-- | Same as <a>sayString</a>, but data is sent to standard error.
sayErrString :: MonadIO m => String -> m ()

-- | Same as <a>sayShow</a>, but data is sent to standard error.
sayErrShow :: (MonadIO m, Show a) => a -> m ()

-- | Same as <a>say</a>, but data is sent to the provided <a>Handle</a>.
hSay :: MonadIO m => Handle -> Text -> m ()

-- | Same as <a>sayString</a>, but data is sent to the provided
--   <a>Handle</a>.
hSayString :: MonadIO m => Handle -> String -> m ()

-- | Same as <a>sayShow</a>, but data is sent to the provided
--   <a>Handle</a>.
hSayShow :: (MonadIO m, Show a) => Handle -> a -> m ()
