Module documentation for 0.1.0.0

say

Send textual messages to a Handle in a thread-friendly way.

The motivation for this package is described in a blog post on Haskell's
Missing Concurrency
Basics.
The simple explanation is, when writing a line of textual data to a Handle -
such as sending some messages t o ther terminal - we'd like to have the
following properties:

Properly handle character encoding settings on the Handle

For reasonably sized messages, ensure that the entire message is written in
one chunk to avoid interleaving data with other threads
* This includes the trailing newline character

Avoid unnecessary memory allocations and copies

Minimize locking

Provide a simple API

On the last point: for the most part, you can make the following substitutions
in your API usage:

Replace putStrLn with say

Replace print with sayShow

If you're using a String instead of Text, replace putStrLn with sayString

In addition, sayErr, sayErrString and sayErrShow work on
standard error instead, and hSay, hSayString and hSayShow work
on arbitrary Handles.