What are the differences between isOnGraphemeClusterBounday() and _hasGraphemeBreakBetween()

Hi everyone,

I was looking more into how Swift detects extended grapheme cluster boundaries and came across these two functions: isOnGraphemeClusterBoundary() and _opaqueCharacterStride() which calls _hasGraphemeBreakBetween().

I was wondering if someone could explain why the two functions seem to be used in different areas and are not used together (from what I could find in the source, but definitely could have missed something)? It looks like _hasGraphemeBreakBetween() is an implementation of the Grapheme Cluster Break Specification. This left me confused about isOnGraphemeClusterBoundary() which does not interact with _hasGraphemeBreakBetween().

Here are links to the two function definitions:
isOnGraphemeClusterBoundary()
_hasGraphemeBreakBetween()

If anyone knows what these two functions do that would be super helpful! Thanks!