let extract_bits ~start ~stop v =
    try
      let i = project_ival v in
      false, inject_ival (Ival.extract_bits ~start ~stop i)
    with
      | Not_based_on_null ->
          if is_imprecise v
          then false, v
          else true, topify_misaligned_read_origin v