I understand your point now this is about letting the guy specifying the line ending and this is really frequent.
>> I’d even propose to have it by default: a FileReference writeStream can >> return a ZnNewLineWriterStream wrapping the corresponding stream. >> By default it can be configured with the system’s default line ending >> convention (least surprise?). >> And then users can change it accordingly… >> >> Now I ask also myself what we could do when reading line endings from a file. >> I’m 98.761% convinced that in the image we should have a single line ending >> convention for strings, and that we should convert internal strings to the >> external representation of convenience explicitly. >> In this direction we could make that default read streams in FileSystem to >> automatically transform external line endings into internal line endings. > > Maybe, maybe. > > It would still create the assumption that the standard stream has lots of > functionality that you can automatically count on. Then it feels that we are > back to where we started. > > The goal was to simplify, with simple, compose-able functionality. > > I know that the implementation would still be more or less modular, but many > layers also carry a performance price. > > I feel like I am fighting a losing battle trying to simplify and clean up the > stream API. > > The fact that we cannot use Traits is another problem, because inheritance > does not cut it. See the old NILE project.