Bodies only; signatures unchanged so call sites are untouched. The *u8 paths flow through the existing pathstr() NUL-bounded str view: cstreq/cstreqlit -> strings.compare()==0, cstrendswithlit -> strings.hassuffix(). bytecmp (enumeratedir sort, magnitude-sensitive) and bytecpy (raw selfdirinto memcpy, storage model) stay byte-level. main.combined.ww regenerated.