Why case-insensitive comparison? I would have thought either byte-by-byte equality or semantic equivalence.