         ///     - targetRange: the range we're intersecting the child nodes with.  The range is in
         ///             this node's coordinates (the parent node's coordinates, from the children
         ///             PoV).
-        ///     - condition: a condition that blocks must fulfill to be considered valid results.
+        ///     - bailCondition: a condition that makes the search bail.
         ///     - matchNotFound: the closure to execute for any subrange of `targetRange` that
         ///             doesn't have a block-level node intersecting it.
         ///     - matchFound: the closure to execute for each child element intersecting

            }

            if let previousRangeWithoutMatch = rangeWithoutMatch {
                if checkCondition(element: self) {
                    matchFound(element: self, intersection: previousRangeWithoutMatch)
                    rangeWithoutMatch = nil
                } else {

        /// - Returns: an array of child nodes and their intersection.  The intersection range is in
        ///         child coordinates.
        ///
        private func enumerateLowestElements(intersectingRange targetRange: NSRange, bailIf bailCondition: (element: ElementNode) -> Bool, onMatchNotFound matchNotFound: (range: NSRange) -> Void, onMatchFound matchFound: (element: ElementNode, intersection: NSRange) -> Void ) {
            
            var rangeWithoutMatch: NSRange?
            var offset = Int(0)
