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