These modules suffer from the following problems:
1. poor documentation, dearth of examples & rationale2. toHash(), toString(), etc., all need to be const pure nothrow, but it's turning out to be problematic for doing it for these classes
3. overlapping functionality with std.stdio 4. they should present a range interface, not a streaming one