let extract_bits ~start ~stop v =
assert (ge start zero && ge stop start);
(*Format.printf "%a[%a..%a]@\n" pretty v pretty start pretty stop;*)
let r = bitwise_extraction (to_int start) (to_int stop) v in
(*Format.printf "%a[%a..%a]=%a@\n" pretty v pretty start pretty stop pretty r;*)
r