code: func (t *Mutable) Iterator(startKey, limitKey []byte) *Iterator {
  	iter := &Iterator{
  		t:        t,
  		root:     t.root,
  		isNew:    true,
  		startKey: startKey,
  		limitKey: limitKey,
  	}
  	return iter
  }
docs: // Iterator returns a new iterator for the mutable treap.  The newly returned
  // iterator is not pointing to a valid item until a call to one of the methods
  // to position it is made.
  //
  // The start key and limit key parameters cause the iterator to be limited to
  // a range of keys.  The start key is inclusive and the limit key is exclusive.
  // Either or both can be nil if the functionality is not desired.
  //
  // WARNING: The ForceSeek method must be called on the returned iterator if
  // the treap is mutated.  Failure to do so will cause the iterator to return
  // unexpected keys and/or values.
  //
  // For example:
  //   iter := t.Iterator(nil, nil)
  //   for iter.Next() {
  //   	if someCondition {
  //   		t.Delete(iter.Key())
  //   		iter.ForceReseek()
  //   	}
  //   }