def lollipop_compare(old_epoch: int, new_epoch: int) -> int:
    """
    Compares two 8-bit lollipop sequences
    :returns: a value indicating if the given new_epoch is in fact newer than old_epoch
        1 if the new_epoch is newer than old_epoch
        0 if the new_epoch is newer and the sequence has been reset
        -1 if new_epoch is not newer than old_epoch
    """
    if old_epoch == new_epoch:
        return -1

    if new_epoch > old_epoch:
        # Case 1: new epoch is greater, 43 > 42
        return 1
    elif new_epoch < 0 <= old_epoch:
        # Case 2: new epoch is lesser, but is negative, -127 < 0 <= 10
        return 0
    elif new_epoch < old_epoch < 0:
        # Case 3: both negative, this is either a reset or a delayed packet
        # from another neighbor. Let's assume it's a reset. -126 < -120 < 0
        return 0
    elif new_epoch < old_epoch and (old_epoch - new_epoch > 32):
        # Case 3: wrap around, 10 < 128, (128 - 10 > 32)
        return 1
    else:
        return -1