For example, in Node.FS.Stream, createReadStream has the type:
createReadStream :: FilePath -> Effect (Readable ())
But the Node API can raise an exception, for instance, if the file doesn't exists. Likely the type should be:
createReadStream :: FilePath -> Effect (Either Error (Readable ()))
Is there any other solution that would be preferred here over catching the exception and returning an Either?