let map2_exn t1 t2 ~f =
let lgth1 = (length t1) in
let lgth2 = (length t2) in
match lgth1, lgth2 with
| 0, 0 -> empty
| _, _ when lgth1 <> lgth2 -> invalid_arg "map2_exn"
| lgth1, lgth2 ->
B.mapi ~f:(fun i c -> f c (B.get t2 i)) t1