@@ -48,6 +48,7 @@ module Streamly.Internal.FileSystem.Dir
4848 , fileReader
4949 , dirReader
5050 , eitherReader
51+ , eitherReaderPaths
5152
5253 {-
5354 , toStreamWithBufferOf
@@ -261,6 +262,11 @@ eitherReader =
261262 r <- liftIO $ Dir.doesDirectoryExist (dir ++ "/" ++ x)
262263 return $ if r then Left x else Right x
263264
265+{-# INLINE eitherReaderPaths #-}
266+eitherReaderPaths :: MonadIO m => Unfold m FilePath (Either FilePath FilePath)
267+eitherReaderPaths =
268+ UF.mapM2 (\dir -> return . bimap (dir </>) (dir </>)) eitherReader
269+
264270--
265271-- | Read files only.
266272--