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: