return MsgStatus only from iterator
leaving the message reading to the fold
only pass the minimum necessary state to 'next'
i.e. the IndexState. The remainder of the State is encapsulated
inside the iterator state. Technically we only need q{1-4} and delta,
but it's simpler and more obvious to just pass a read-only State
around.