Another (different, but related) question:

Consider the following html:

```
<!DOCTYPE html>
<html>
	<head>
		<style type="text/css">
			body {
				margin: 0;
			}
			P.fls {
				background-color: yellow;
				width: 25%;
				position: absolute;
				font-size: 64px;
				margin: 0;
			}
			DIV {
				font-size: 32px;
				clear: both;
				background-color: green;
			    height: 400px;
			}
		</style>
	</head>
	<body>
		<div class="ch"><span>a b c d e f g h i j k l m n o p q r s t u v q x y z a b c d e f g h i j k l m n o p q r s t u v q x y z</span><p class="fls">F</p><span>A B C D E F G H I J K L M N O P Q R S T U V W X Y Z</span></div>
	</body>
</html>
```
The flow tree is:

```
+ RootFlow: (GenericBox  )
| + BlockFlow: (GenericBox  )
| | + BlockFlow: (GenericBox  )
| | | + InlineFlow: (ScannedTextBox  )
| | | + BlockFlow: (GenericBox  )
| | | | + InlineFlow: (ScannedTextBox  )
| | | + InlineFlow: (ScannedTextBox  )
```

In this case, the block is absolutely positioned, so it is taken out of the flow. In FF, the two spans are then collapsed into a single inline flow, and the lower and upper case characters are joined together. However, in Servo they are not collapsed (I assume due to the absolute BlockFlow being between them) - and therefore they show up on separate lines. This is related to the stuff above because the same behaviour occurs if the <p> is floated as in the above situation.

So I can see a few options (but haven't looked at any of the code to see how this works yet):

(1) Change the way InlineFlows are collapsed so that if a BlockFlow is between them and it is not part of the final flow (i.e. floated or absolutely positioned) it doesn't prevent InlineFlows collapsing.
(2) Change the location of the (floated / absolutely positioned) BlockFlow items in the flow tree to be somewhere else (children of one of the InlineFlows for floats? last siblings for absolutely positioned?) so that the InlineFlows are next to each other and collapse using the current code.

Am I thinking on the right track or missing the point completely?