Design Goals and Philosophy
The goal of this library are to
-
enable people to write new code that can properly handle encoded information, specifically text;
-
offer them effective means to convert that information in various ways;
impose no run-time overhead compared to writing the code by hand; and
statically track encodings, where possible, to make lossless or bad conversions a compile time error rather than a runtime problem;
These four goals inform the design of the library to its deepest levels and helps us go through the following important tenents: