Ensure that CoerceType not in a @fold are followed by a MarkLocation or Filter block.

def _sanity_check_coerce_type_outside_of_fold(ir_blocks):
    """Ensure that CoerceType not in a @fold are followed by a MarkLocation or Filter block."""
    is_in_fold = False
    for first_block, second_block in pairwise(ir_blocks):
        if isinstance(first_block, Fold):
            is_in_fold = True

        if not is_in_fold and isinstance(first_block, CoerceType):
            if not isinstance(second_block, (MarkLocation, Filter)):
                raise AssertionError(u'Expected MarkLocation or Filter after CoerceType, '
                                     u'but none was found: {}'.format(ir_blocks))

        if isinstance(second_block, Unfold):
            is_in_fold = False