 Returns the contents of the buffer between the two points.
--
-- If the @startPoint >= endPoint@, empty string is returned. If the
-- points are out of bounds, as much of the content as possible is
-- taken: you're not guaranteed to get @endPoint - startPoint@
-- characters.
betweenB :: Point -- ^ Point to start at
         -> Point -- ^ Point to stop at
         -> BufferM YiString
betweenB (Point s) (Point e) =
  if s >= e
  then return mempty
  else snd . R.splitAt s . fst . R.splitAt e <$> elemsB

--
betweenB :: Point -- ^ Point to start at
         -> Point -- ^ Point to stop at
         -> BufferM YiString
betweenB (Point s) (Point e) =
  if s >= e
  then return mempty
  else snd . R.splitAt s . fst . R.splitAt e <$> elemsB
betweenB (Point s) (Point e) =
  if s >= e
  then return mempty
  else snd . R.splitAt s . fst . R.splitAt e <$> elemsB