       else
         0
 
+  # Public: Returns a {Boolean} indicating whether this point has the same row
+  # and column as the given {Point} or point-compatible {Array}.
   isEqual: (other) ->
     return false unless other
     other = Point.fromObject(other)
     @row == other.row and @column == other.column
 
+  # Public: Returns a {Boolean} indicating whether this point precedes the given
+  # {Point} or point-compatible {Array}.
   isLessThan: (other) ->
     @compare(other) < 0
 
+  # Public: Returns a {Boolean} indicating whether this point precedes or is
+  # equal to the given {Point} or point-compatible {Array}.
   isLessThanOrEqual: (other) ->
     @compare(other) <= 0
 
+  # Public: Returns a {Boolean} indicating whether this point follows the given
+  # {Point} or point-compatible {Array}.
   isGreaterThan: (other) ->
     @compare(other) > 0
 
+  # Public: Returns a {Boolean} indicating whether this point follows or is
+  # equal to the given {Point} or point-compatible {Array}.
   isGreaterThanOrEqual: (other) ->
     @compare(other) >= 0
 
+  # Public: Returns an array of this point's row and column.
   toArray: ->
     [@row, @column]
 
+  # Public: Returns an array of this point's row and column.
   serialize: ->
     @toArray()
 
+  # Public:
   toString: ->
     "(#{@row}, #{@column})"

module.exports =
class Point
  @fromObject: (object, copy) ->
    if object instanceof Point
      if copy then object.copy() else object


      new Point(row, column)

  # Public: Returns the given point that is earlier in the buffer.
  @min: (point1, point2) ->
    point1 = @fromObject(point1)
    point2 = @fromObject(point2)
