:- module (bit_buffer.write).
:- pragma termination_info((bit_buffer.write).new((builtin.in), (builtin.in), (builtin.di)) = ((bit_buffer.write).write_buffer_uo), infinite, can_loop).
:- pragma termination_info((bit_buffer.write).new_bitmap_builder((builtin.in)) = (builtin.out), infinite, can_loop).
:- pragma termination_info((bit_buffer.write).num_buffered_bits(((bit_buffer.write).write_buffer_ui)) = (builtin.out), infinite, can_loop).
:- pragma termination_info((bit_buffer.write).num_bits_to_byte_boundary(((bit_buffer.write).write_buffer_ui)) = (builtin.out), finite(0, [no, no, no, no]), cannot_loop).
:- pragma termination_info((bit_buffer.write).put_bit((builtin.in), ((bit_buffer.write).write_buffer_di), ((bit_buffer.write).write_buffer_uo)), infinite, can_loop).
:- pragma termination_info((bit_buffer.write).put_bits((builtin.in), (builtin.in), ((bit_buffer.write).write_buffer_di), ((bit_buffer.write).write_buffer_uo)), infinite, can_loop).
:- pragma termination_info((bit_buffer.write).put_byte((builtin.in), ((bit_buffer.write).write_buffer_di), ((bit_buffer.write).write_buffer_uo)), infinite, can_loop).
:- pragma termination_info((bit_buffer.write).put_bitmap((bitmap.bitmap_ui), ((bit_buffer.write).write_buffer_di), ((bit_buffer.write).write_buffer_uo)), infinite, can_loop).
:- pragma termination_info((bit_buffer.write).put_bitmap((bitmap.bitmap_ui), (builtin.in), (builtin.in), ((bit_buffer.write).write_buffer_di), ((bit_buffer.write).write_buffer_uo)), infinite, can_loop).
:- pragma termination_info((bit_buffer.write).flush(((bit_buffer.write).write_buffer_di), ((bit_buffer.write).write_buffer_uo)), infinite, can_loop).
:- pragma termination_info((bit_buffer.write).finalize(((bit_buffer.write).write_buffer_di), (builtin.out), (builtin.uo)), infinite, can_loop).
:- pragma termination_info((bit_buffer.write).finalize_to_bitmap(((bit_buffer.write).write_buffer_di)) = (bitmap.bitmap_uo), infinite, can_loop).
:- pragma termination_info((bit_buffer.write).put_bitmap_2((bitmap.bitmap_ui), (builtin.in), (builtin.in), ((bit_buffer.write).write_buffer_di), ((bit_buffer.write).write_buffer_uo)), infinite, can_loop).
:- pragma termination_info((bit_buffer.write).maybe_make_room((bit_buffer.bit_buffer_di), (bit_buffer.bit_buffer_uo)), infinite, can_loop).
:- pragma termination_info((bit_buffer.write).make_room((bit_buffer.bit_buffer_di), (bit_buffer.bit_buffer_uo)), infinite, can_loop).
:- pragma termination_info((bit_buffer.write).flush_chunk_to_stream((bit_buffer.bit_buffer_di), (bit_buffer.bit_buffer_uo)), infinite, can_loop).
:- pragma termination_info((bit_buffer.write).store_full_buffer((builtin.in), (builtin.out)), infinite, can_loop).
:- pragma exceptions(function, ((bit_buffer.write).new), 4, 0, may_throw(user_exception)).
:- pragma exceptions(function, ((bit_buffer.write).new_bitmap_builder), 2, 0, may_throw(user_exception)).
:- pragma exceptions(function, ((bit_buffer.write).num_buffered_bits), 2, 0, may_throw(user_exception)).
:- pragma exceptions(function, ((bit_buffer.write).num_bits_to_byte_boundary), 2, 0, will_not_throw).
:- pragma exceptions(predicate, ((bit_buffer.write).put_bit), 3, 0, may_throw(user_exception)).
:- pragma exceptions(predicate, ((bit_buffer.write).put_bits), 4, 0, may_throw(user_exception)).
:- pragma exceptions(predicate, ((bit_buffer.write).put_byte), 3, 0, may_throw(user_exception)).
:- pragma exceptions(predicate, ((bit_buffer.write).put_bitmap), 3, 0, may_throw(user_exception)).
:- pragma exceptions(predicate, ((bit_buffer.write).put_bitmap), 5, 0, may_throw(user_exception)).
:- pragma exceptions(predicate, ((bit_buffer.write).flush), 2, 0, may_throw(user_exception)).
:- pragma exceptions(predicate, ((bit_buffer.write).(finalize)), 3, 0, may_throw(user_exception)).
:- pragma exceptions(function, ((bit_buffer.write).finalize_to_bitmap), 2, 0, may_throw(user_exception)).
:- pragma exceptions(predicate, ((bit_buffer.write).put_bitmap_2), 5, 0, may_throw(user_exception)).
:- pragma exceptions(predicate, ((bit_buffer.write).maybe_make_room), 2, 0, may_throw(user_exception)).
:- pragma exceptions(predicate, ((bit_buffer.write).make_room), 2, 0, may_throw(user_exception)).
:- pragma exceptions(predicate, ((bit_buffer.write).flush_chunk_to_stream), 2, 0, may_throw(user_exception)).
:- pragma exceptions(predicate, ((bit_buffer.write).store_full_buffer), 2, 0, may_throw(user_exception)).
