+#
+# !!lookAheadHardBreak Described here because it is (as yet) undocumented elsewhere
+# and only used for the line break rules.
+#
+# It is used in the implementation of rule LB 10
+# which says to treat any combining mark that is not attached to a base
+# character as if it were of class AL (alphabetic).
+#
+# The problem occurs in the reverse rules.
+#
+# Consider a sequence like, with correct breaks as shown
+# LF ID CM AL AL
+# ^ ^ ^
+# Then consider the sequence without the initial ID (ideographic)
+# LF CM AL AL
+# ^ ^
+# Our CM, which in the first example was attached to the ideograph,
+# is now unattached, becomes an alpha, and joins in with the other
+# alphas.
+#
+# When iterating forwards, these sequences do not present any problems
+# When iterating backwards, we need to look ahead when encountering
+# a CM to see whether it attaches to something further on or not.
+# (Look-ahead in a reverse rule is looking towards the start)
+#
+# If the CM is unattached, we need to force a break.
+#
+# !!lookAheadHardBreak forces the run time state machine to
+# stop immediately when a look ahead rule ( '/' operator) matches,
+# and set the match position to that of the look-ahead operator,
+# no matter what other rules may be in play at the time.
+#
+# See rule LB 19 for an example.
+#