code: function either(l) {
      return function(r) {
        return function(either) {
          return (either.isLeft ? l : r) (either.value);
        };
      };
    }
docs: # either :: (a -> c) -> (b -> c) -> Either a b -> c . . Takes two functions and an Either, and returns the result of . applying the first function to the Left's value, if the Either . is a Left, or the result of applying the second function to the . Right's value, if the Either is a Right. . . ```javascript . > S.either (S.toUpper) (S.show) (S.Left ('Cannot divide by zero')) . 'CANNOT DIVIDE BY ZERO' . . > S.either (S.toUpper) (S.show) (S.Right (42)) . '42' . ```