¿Cuál es la forma más rápida / eficiente de contar líneas en Rebol?

Dado una cadenastring, ¿cuál es la forma más rápida / eficiente de contar líneas en él? Aceptará las mejores respuestas para cualquier sabor de Rebol. He estado trabajando bajo el supuesto de que elparse [some [thru]] la combinación fue la forma más rápida de atravesar una cadena, pero no lo sé con certeza, por lo que recurrir a SO:

count-lines: func [string [string!] /local count][
    parse/all string [
        (count: 1) some [thru newline (count: count + 1)]
    ]
    count
]

O:

count-lines: func [string [string!] /local count][
    count: 0
    until [
        count: count + 1
        not string: find/tail string newline
    ]
    count
]

¿Y qué tal contadores? ¿Qué tan eficiente es la repetición?

count-lines: func [string [string!]][
    repeat count length? string [
        unless string: find/tail string newline [
            break/return count
        ]
    ]
]

Actualizar: el recuento de líneas va por el principio del editor de texto:

Un documento vacío todavía tiene una cuenta de línea de uno. Asi que:

>> count-lines ""
== 1
>> count-lines "^/"
== 2

Respuestas a la pregunta(9)

Su respuesta a la pregunta