
On Monday 02 April 2007 12:48, Bulat Ziganshin wrote:
this means that these functions should be implemented in GHC.*, NHC.* and Hugs.* and only then System.IO may include interface function that will call one of them
I don't think that this will really solve portability issues, as we would still need #ifdefs in System.IO to import the right module. The general question is: Where do we want to solve these issues: Within the code or outside of it (i.e. in the build system)? Both approaches have pros and cons, but if we want to factor things out into the build system, we would need a System.IO.Impl module, which is specific to a Haskell implementation and outside base, but which has an implementation-independent API. Mixing both approaches only complicates things with no real benefit. Cheers, S.