Thanks for pushing on this!
I feel that FileStat would be the better name for the struct. System.Stat (which is used to resolve shadowing a name that’s very likely to be shadowed) implies the status of the system instead of a file.
Similarly, FileSystemStat if you get around to statfs.
Another even nicer looking alternative is File.Stat and FileSystem.Stat, but that requires a File namespace that we might not want to introduce in System. Should such a namespace exist in the future, I’d recommend adding type aliases.
I see that you have both instance methods and initializers. E.g. a FilePath.stat and a Stat.init taking a path. What’s the rationale here? I’m not opposed to it, but this would be the first time IIRC that we’re crossing that bridge.
Would that be a prerequisite to shipping?