func (w *SnowballWord) R2String() string {
	return string(w.R2())
}
Return the R2 region as a string
package snowballword
import (
	"fmt"
)
type SnowballWord struct {
	RS []rune
	R1start int
	R2start int
	RVstart int
}
func New(in string) (word *SnowballWord) {
	word = &SnowballWord{RS: []rune(in)}
	word.R1start = len(word.RS)
	word.R2start = len(word.RS)
	word.RVstart = len(word.RS)
	return
}
func (w *SnowballWord) ReplaceSuffix(suffix, replacement string, force bool) bool {
	var (
		doReplacement bool
		suffixRunes   []rune
	)
	if force {
		doReplacement = true
		suffixRunes = []rune(suffix)
	} else {
		var foundSuffix string
		foundSuffix, suffixRunes = w.FirstSuffix(suffix)
		if foundSuffix == suffix {
			doReplacement = true
		}
	}
	if doReplacement == false {
		return false
	}
	w.ReplaceSuffixRunes(suffixRunes, []rune(replacement), true)
	return true
}
func (w *SnowballWord) RemoveLastNRunes(n int) {
	w.RS = w.RS[:len(w.RS)-n]
	w.resetR1R2()
}
func (w *SnowballWord) ReplaceSuffixRunes(suffixRunes []rune, replacementRunes []rune, force bool) bool {
	if force || w.HasSuffixRunes(suffixRunes) {
		lenWithoutSuffix := len(w.RS) - len(suffixRunes)
		w.RS = append(w.RS[:lenWithoutSuffix], replacementRunes...)
		w.resetR1R2()
		return true
	}
	return false
}
func (w *SnowballWord) resetR1R2() {
	rsLen := len(w.RS)
	if w.R1start > rsLen {
		w.R1start = rsLen
	}
	if w.R2start > rsLen {
		w.R2start = rsLen
	}
	if w.RVstart > rsLen {
		w.RVstart = rsLen
	}
}
func (w *SnowballWord) slice(start, stop int) []rune {
	startMin := 0
	if start < startMin {
		start = startMin
	}
	max := len(w.RS) - 1
	if start > max {
		start = max
	}
	if stop > max {
		stop = max
	}
	return w.RS[start:stop]
}
func (w *SnowballWord) FitsInR1(x int) bool {
	return w.R1start <= len(w.RS)-x
}
func (w *SnowballWord) FitsInR2(x int) bool {
	return w.R2start <= len(w.RS)-x
}
func (w *SnowballWord) FitsInRV(x int) bool {
	return w.RVstart <= len(w.RS)-x
}
func (w *SnowballWord) R1() []rune {
	return w.RS[w.R1start:]
}
func (w *SnowballWord) R1String() string {
	return string(w.R1())
}
func (w *SnowballWord) R2() []rune {
	return w.RS[w.R2start:]
}