Representing file paths
For filesystem related combinators we have to deal with file paths. We do not want to use String to represent file paths in favor of better typed paths. Since streamly is implementing all the IO combinators from scratch it is a good opportunity to introduce typed paths a la the path package.
The path package is the closest that we can use. However, there are a few changes that we may need which will require forking that package. Also, path depends on aeson which brings dependencies which we do not want to have. The idea is to have Streamly.Data.Path module to deal with the composition of paths and operations on them.
This is an urgent issue as we have the Streamly.FileSystem.File module unexposed because of this.
See this document: https://github.com/composewell/streamly/blob/master/design/paths.rst