code: function point(x, y) {
          if (!(this instanceof point))
              return new point(x, y);
          var xy;
          if (y === undefined && Object(x) !== x) {
              xy = x.split(_.indexOf(x, "@") === -1 ? " " : "@");
              this.x = parseInt(xy[0], 10);
              this.y = parseInt(xy[1], 10);
          } else if (Object(x) === x) {
              this.x = x.x;
              this.y = x.y;
          } else {
              this.x = x;
              this.y = y;
          }
      }
docs: * `point(10, 20)` * `new point(10, 20)` * `point('10 20')` * `point(point(10, 20))`