Hi, First of all, sorry for breaking the thread, but I had some trouble with my mail provider, and couldn't hit the "reply" button.
To the point... I think there are some things that are simply not solved by abstraction. Some problems are concrete problems that need concrete solutions, filesystem access is one of them, IMNSHO. I pretty much think if ($*OS ~~ POSIX) { ... } elsif ($*OS ~~ Win32) { ... } is much saner than trying to deal with an enormous API that would be the result of the attempt to get a sane abstraction of all the different possible scenarios, and that would end up having backward-incompatible changes after a while because of some use case scenario that wasn't adrressed. On the other hand, we really could think on having chmod, chown etc in the POSIX module, and have the POSIX module imported (where chmod would be in the default exports) by the prelude when in a posix machine, the same for the Win32 or whatever counterpart. Of course it would be very much interesting to have the "open" implemented by the POSIX module with the same API as the "open" implemented by the Win32 module. But I'm pretty much sure that's not the case for chown and chmod, and I don't think an abstract API is worth the trouble for 99% of the cases. But note that this doesn't stop the people in the 1% case to write the abstraction API, I just think it doesn't need to be the only way to access the features, and it certainly doesn't need to be loaded in the prelude. daniel