this is not quite right, is it? It will always return a Right. What if there is no data on disk? It is not clear that this will not have data loss.