in other news: `long long` and `uint64_t` are not guaranteed to be the same size. Do we want to just work in `long longs` throughout the code (maybe typedefed to `filesize` or something like that)?