make the poor promise in the filesystem use an applicative monad