The Size type in Data.Vector.Fusion.Bundle.Size is currently defined like this:
data Size = Exact Int -- ^ Exact size
| Max Int -- ^ Upper bound on the size
| Unknown -- ^ Unknown size
Is there any reason why the Int fields aren't strict, so that they can be unboxed? This seems like an obvious improvement, so maybe I'm missing something.