Sometimes you have a function that may return either of completely different object types. for example login() function may return the user information or an error object. Either to the rescue! It let's you return either or left which are from type of Either. And then you can decide what to do based on the left/right existence. I just wrote a node.js library for that, the library have built from insparation i got from Scala either monad.