All these operations are very natural for buffer objects as well as
  strings, which leads me to the conclusion we should provide two
  flavours for each function, for buffers and for strings.  The way
  emacs does it is by specifying an object argument.  I find this
  suboptimal, but it is also possible solution (and would reduce the
  number of functions in half).  Note that there are also different
  indexing conventions, see the Question below.
All functions come in buffer and string flavours.  The “current
  position” is called point in buffer versions and offset in string