 
   # Public: Freezes the range and its start and end point so it becomes
   # immutable and returns itself.
+  #
+  # Returns an immutable version of this {Range}
   freeze: ->
     @start.freeze()
     @end.freeze()

  # Public: Returns a {Boolean} indicating whether this range has the same start
  # and end points as the given {Range} or range-compatible {Array}.
  #
  # * otherRange: A {Range} or range-compatible {Array}.
  isEqual: (other) ->
    return false unless other?
    other = @constructor.fromObject(other)

  #   to get the end point.
  # * `columnDelta` A {Number} indicating how many rows to columns to the start
  #   point to get the end point.
  @fromPointWithDelta: (startPoint, rowDelta, columnDelta) ->
    startPoint = Point.fromObject(startPoint)
    endPoint = new Point(startPoint.row + rowDelta, startPoint.column + columnDelta)
