On Sep 11, 2013, at 10:48 AM, Zooko Wilcox-OHearn <zooko@leastauthority.com> wrote:

We can instead *require*
the user to supply a type with the bytestring originally, and then
remember the type that the user supplied. This breaks only a few use
cases that are probably very rare, and in fact might be unfixable
anyway

Just to be specific about this, the use-case that it breaks is the notion that you have a USB key formatted on a Linux machine in KOI-8 and you plug it into a system where the host encoding is Shift-JIS.  You can then have a path which is partially in one encoding and partially in another.

The problem with the "bytes-with-encoding" idea is that it doesn't apply to paths, it applies to path segments - which is why FilePath is (well, ought to be) a data *structure*, and not just some methods around existing data (a string).

-glyph