code: function(value, isLeft) {
    this.value = value;
    this.isLeft = function() { return isLeft; };
    this.isRight = function() { return !isLeft; };
    this.fold = function(fLeft, fRight) {
      return (this.isLeft() ? fLeft : fRight)(value);
    };
    this.left = function() { return new LeftProjection(this); };
    this.right = function() { return new RightProjection(this); };
  }
docs: /* Either.