docs and Maybe either function