let little_endian_merge_bits ~conflate_bottom ~total_length ~value 
      ~offset acc =
    if equal acc bottom || equal value bottom
    then begin
        if conflate_bottom
        then
          bottom
        else 
          join 
            (topify_misaligned_read_origin acc) 
            (topify_misaligned_read_origin value)
      end
    else
    let result =
      bitwise_or
        ~topify_arith_origin:topify_misaligned_read_origin
        ~size:total_length
        (shift_left
            ~topify_arith_origin:topify_misaligned_read_origin
           ~with_alarms:warn_none_mode
           ~size:total_length
           value
           (inject_ival (Ival.inject_singleton offset)))
        acc
    in
    (*Format.printf "le merge_bits : total_length:%d value:%a offset:%a acc:%a GOT:%a@."
      total_length pretty value Int.pretty offset pretty acc pretty result;*)

    result