:- module tree234.
:- use_module assoc_list, bool, builtin, int, io, list, maybe, pair, pretty_printer, private_builtin, profiling_builtin, require, set, string, term.
:- type tree234.lazy_list(K, V)
	--->	empty 
	;	lazy_cons(K, V, ((func) = tree234.lazy_list(K, V))).
:- type tree234.key_value_pair(K, V)
	--->	->(K, V).
:- inst (tree234.four(K, V, T)) == bound(four(K, V, K, V, K, V, T, T, T, T)).
:- inst (tree234.three(K, V, T)) == bound(three(K, V, K, V, T, T, T)).
:- inst (tree234.tree234_nonempty) == bound(four(ground, ground, ground, ground, ground, ground, ground, ground, ground, ground) ; three(ground, ground, ground, ground, ground, ground, ground) ; two(ground, ground, ground, ground)).
:- inst (tree234.two(K, V, T)) == bound(two(K, V, T, T)).
:- inst (tree234.uniq_four(K, V, T)) == unique(four(K, V, K, V, K, V, T, T, T, T)).
:- inst (tree234.uniq_three(K, V, T)) == unique(three(K, V, K, V, T, T, T)).
:- inst (tree234.uniq_two(K, V, T)) == unique(two(K, V, T, T)).
:- mode (tree234.di_four) == builtin.di(tree234.uniq_four(unique, unique, unique)).
:- mode (tree234.di_three) == builtin.di(tree234.uniq_three(unique, unique, unique)).
:- mode (tree234.di_two) == builtin.di(tree234.uniq_two(unique, unique, unique)).
:- mode (tree234.in_four) == builtin.in(tree234.four(ground, ground, ground)).
:- mode (tree234.in_three) == builtin.in(tree234.three(ground, ground, ground)).
:- mode (tree234.in_two) == builtin.in(tree234.two(ground, ground, ground)).
:- mode (tree234.out_two) == builtin.out(tree234.two(ground, ground, ground)).
:- mode (tree234.sdi_four) == builtin.di(tree234.uniq_four(ground, ground, (tree234.uniq_tree234_gg))).
:- mode (tree234.sdi_three) == builtin.di(tree234.uniq_three(ground, ground, (tree234.uniq_tree234_gg))).
:- mode (tree234.sdi_two) == builtin.di(tree234.uniq_two(ground, ground, (tree234.uniq_tree234_gg))).
:- mode (tree234.suo_two) == builtin.out(tree234.uniq_two(ground, ground, (tree234.uniq_tree234_gg))).
:- mode (tree234.uo_two) == builtin.out(tree234.uniq_two(unique, unique, unique)).
:- pred tree234.delete_2(tree234.tree234(K_1, V_2), K_1, tree234.tree234(K_1, V_2), bool.bool).
:- mode tree234.delete_2((builtin.in), (builtin.in), (builtin.out), (builtin.out)) is det.
:- pred tree234.remove_2(tree234.tree234(K_1, V_2), K_1, V_2, tree234.tree234(K_1, V_2), bool.bool).
:- mode tree234.remove_2((builtin.in), (builtin.in), (builtin.out), (builtin.out), (builtin.out)) is semidet.
:- pred tree234.remove_smallest_2(tree234.tree234(K_1, V_2), K_1, V_2, tree234.tree234(K_1, V_2), bool.bool).
:- mode tree234.remove_smallest_2((builtin.in), (builtin.out), (builtin.out), (builtin.out), (builtin.out)) is semidet.
:- pred tree234.keys_acc(tree234.tree234(K_1, V_2), list.list(K_1), list.list(K_1)).
:- mode tree234.keys_acc((builtin.in), (builtin.in), (builtin.out)) is det.
:- pred tree234.values_acc(tree234.tree234(K_1, V_2), list.list(V_2), list.list(V_2)).
:- mode tree234.values_acc((builtin.in), (builtin.in), (builtin.out)) is det.
:- pred tree234.keys_and_values_acc(tree234.tree234(K_1, V_2), list.list(K_1), list.list(K_1), list.list(V_2), list.list(V_2)).
:- mode tree234.keys_and_values_acc((builtin.in), (builtin.in), (builtin.out), (builtin.in), (builtin.out)) is det.
:- pred tree234.tree234_to_assoc_list_acc(tree234.tree234(K_1, V_2), list.list(pair.pair(K_1, V_2)), list.list(pair.pair(K_1, V_2))).
:- mode tree234.tree234_to_assoc_list_acc((builtin.in), (builtin.in), (builtin.out)) is det.
:- pred tree234.assoc_list_to_tree234_acc(list.list(pair.pair(K_1, V_2)), tree234.tree234(K_1, V_2), tree234.tree234(K_1, V_2)).
:- mode tree234.assoc_list_to_tree234_acc((builtin.in), (builtin.in), (builtin.out)) is det.
:- pred tree234.min_size_based_on_depth(int, int).
:- mode tree234.min_size_based_on_depth((builtin.in), (builtin.out)) is det.
:- pred tree234.find_depth(tree234.tree234(K_1, V_2), int).
:- mode tree234.find_depth((builtin.in), (builtin.out)) is det.
tree234.init = tree234.empty.
tree234.init(tree234.empty).
tree234.singleton(K_4, V_5) = tree234.two(K_4, V_5, V_6, V_7) :-
    V_6 = tree234.empty : tree234.tree234(K_1, V_2),
    V_7 = tree234.empty : tree234.tree234(K_1, V_2).
tree234.is_empty(Tree_2) :-
    Tree_2 = tree234.empty : tree234.tree234(K_1, V_2).
tree234.lookup(T_4, K_5) = V_6 :-
    tree234.lookup(T_4, K_5, V_6).
tree234.set(STATE_VARIABLE_T_0_8, K_6, V_7) = STATE_VARIABLE_T_9 :-
    tree234.set(K_6, V_7, STATE_VARIABLE_T_0_8, STATE_VARIABLE_T_9).
tree234.delete(STATE_VARIABLE_T_0_6, K_5) = STATE_VARIABLE_T_7 :-
    tree234.delete(K_5, STATE_VARIABLE_T_0_6, STATE_VARIABLE_T_7).
tree234.delete(K_4, Tin_5, Tout_6) :-
    tree234.delete_2(Tin_5, K_4, Tout_6, V_7).
tree234.remove(K_5, V_6, Tin_7, Tout_8) :-
    tree234.remove_2(Tin_7, K_5, V_6, Tout_8, V_9).
tree234.remove_smallest(K_5, V_6, Tin_7, Tout_8) :-
    tree234.remove_smallest_2(Tin_7, K_5, V_6, Tout_8, V_9).
tree234.keys(T_3) = Ks_4 :-
    tree234.keys(T_3, Ks_4).
tree234.keys(Tree_3, Keys_4) :-
    V_5 = list.[] : list.list(K_1),
    tree234.keys_acc(Tree_3, V_5, Keys_4).
tree234.values(T_3) = Vs_4 :-
    tree234.values(T_3, Vs_4).
tree234.values(Tree_3, Values_4) :-
    V_5 = list.[] : list.list(V_2),
    tree234.values_acc(Tree_3, V_5, Values_4).
tree234.keys_and_values(Tree_4, Keys_5, Values_6) :-
    V_7 = list.[] : list.list(K_1),
    V_8 = list.[] : list.list(V_2),
    tree234.keys_and_values_acc(Tree_4, V_7, Keys_5, V_8, Values_6).
tree234.count(T_3) = N_4 :-
    tree234.count(T_3, N_4).
tree234.tree234_to_assoc_list(T_3) = AL_4 :-
    tree234.tree234_to_assoc_list(T_3, AL_4).
tree234.tree234_to_assoc_list(Tree_3, AssocList_4) :-
    V_5 = list.[] : list.list(pair.pair(K_1, V_2)),
    tree234.tree234_to_assoc_list_acc(Tree_3, V_5, AssocList_4).
tree234.assoc_list_to_tree234(AL_3) = T_4 :-
    tree234.assoc_list_to_tree234(AL_3, T_4).
tree234.assoc_list_to_tree234(AssocList_3, Tree_4) :-
    V_5 = tree234.empty : tree234.tree234(K_1, V_2),
    tree234.assoc_list_to_tree234_acc(AssocList_3, V_5, Tree_4).
tree234.foldl(F_5, T_6, A_7) = B_8 :-
    P_9 = (pred(V_14::(builtin.in), V_15::(builtin.in), V_16::(builtin.in), V_17::(builtin.out)) is det :-
      some [] (
        V_14 = W_18,
        V_15 = X_19,
        V_16 = Y_20,
        Z_21 = apply(F_5, W_18, X_19, Y_20),
        V_17 = Z_21
      )
    )
 : pred(K_1, V_2, A_3, A_3),
    tree234.foldl(P_9, T_6, A_7, B_8).
tree234.foldr(F_5, T_6, A_7) = B_8 :-
    P_9 = (pred(V_14::(builtin.in), V_15::(builtin.in), V_16::(builtin.in), V_17::(builtin.out)) is det :-
      some [] (
        V_14 = W_18,
        V_15 = X_19,
        V_16 = Y_20,
        Z_21 = apply(F_5, W_18, X_19, Y_20),
        V_17 = Z_21
      )
    )
 : pred(K_1, V_2, A_3, A_3),
    tree234.foldr(P_9, T_6, A_7, B_8).
tree234.map_values(F_4, T1_5) = T2_6 :-
    P_7 = (pred(V_11::(builtin.in), V_12::(builtin.in), V_13::(builtin.out)) is det :-
      some [] (
        V_11 = X_14,
        V_12 = Y_15,
        Z_16 = apply(F_4, X_14, Y_15),
        V_13 = Z_16
      )
    )
 : pred(K_1, V_2, W_3),
    tree234.map_values(P_7, T1_5, T2_6).
tree234.map_values_only(F_4, T1_5) = T2_6 :-
    P_7 = (pred(V_10::(builtin.in), V_11::(builtin.out)) is det :-
      some [] (
        V_10 = Y_12,
        Z_13 = apply(F_4, Y_12),
        V_11 = Z_13
      )
    )
 : pred(V_1, W_2),
    tree234.map_values_only(P_7, T1_5, T2_6).
tree234.find_min_size_based_on_depth(T_3, MinSize_4) :-
    tree234.find_depth(T_3, Depth_5),
    tree234.min_size_based_on_depth(Depth_5, MinSize_4).
:- pragma exceptions(function, (tree234.init), 1, 0, will_not_throw).
:- pragma exceptions(predicate, (tree234.init), 1, 0, will_not_throw).
:- pragma exceptions(function, (tree234.singleton), 3, 0, will_not_throw).
:- pragma exceptions(predicate, (tree234.is_empty), 1, 0, will_not_throw).
:- pragma exceptions(predicate, (tree234.equal), 2, 0, may_throw(user_exception)).
:- pragma exceptions(predicate, (tree234.member), 3, 0, will_not_throw).
:- pragma exceptions(predicate, (tree234.search), 3, 0, may_throw(type_exception)).
:- pragma exceptions(function, (tree234.lookup), 3, 0, may_throw(user_exception)).
:- pragma exceptions(predicate, (tree234.lookup), 3, 0, may_throw(user_exception)).
:- pragma exceptions(predicate, (tree234.lower_bound_search), 4, 0, may_throw(type_exception)).
:- pragma exceptions(predicate, (tree234.lower_bound_lookup), 4, 0, may_throw(user_exception)).
:- pragma exceptions(predicate, (tree234.upper_bound_search), 4, 0, may_throw(type_exception)).
:- pragma exceptions(predicate, (tree234.upper_bound_lookup), 4, 0, may_throw(user_exception)).
:- pragma exceptions(function, (tree234.max_key), 2, 0, will_not_throw).
:- pragma exceptions(function, (tree234.min_key), 2, 0, will_not_throw).
:- pragma exceptions(predicate, (tree234.insert), 4, 0, may_throw(type_exception)).
:- pragma exceptions(predicate, (tree234.search_insert), 5, 0, may_throw(type_exception)).
:- pragma exceptions(predicate, (tree234.update), 4, 0, may_throw(type_exception)).
:- pragma exceptions(function, (tree234.set), 4, 0, may_throw(type_exception)).
:- pragma exceptions(predicate, (tree234.set), 4, 0, may_throw(type_exception)).
:- pragma exceptions(predicate, (tree234.transform_value), 4, 0, may_throw(user_exception)).
:- pragma exceptions(function, (tree234.delete), 3, 0, may_throw(user_exception)).
:- pragma exceptions(predicate, (tree234.delete), 3, 0, may_throw(user_exception)).
:- pragma exceptions(predicate, (tree234.remove), 4, 0, may_throw(user_exception)).
:- pragma exceptions(predicate, (tree234.remove_smallest), 4, 0, may_throw(user_exception)).
:- pragma exceptions(function, (tree234.keys), 2, 0, will_not_throw).
:- pragma exceptions(predicate, (tree234.keys), 2, 0, will_not_throw).
:- pragma exceptions(function, (tree234.values), 2, 0, will_not_throw).
:- pragma exceptions(predicate, (tree234.values), 2, 0, will_not_throw).
:- pragma exceptions(predicate, (tree234.keys_and_values), 3, 0, will_not_throw).
:- pragma exceptions(function, (tree234.count), 2, 0, will_not_throw).
:- pragma exceptions(predicate, (tree234.count), 2, 0, will_not_throw).
:- pragma exceptions(function, (tree234.tree234_to_assoc_list), 2, 0, will_not_throw).
:- pragma exceptions(predicate, (tree234.tree234_to_assoc_list), 2, 0, will_not_throw).
:- pragma exceptions(function, (tree234.assoc_list_to_tree234), 2, 0, may_throw(type_exception)).
:- pragma exceptions(predicate, (tree234.assoc_list_to_tree234), 2, 0, may_throw(type_exception)).
:- pragma exceptions(predicate, (tree234.from_sorted_assoc_list), 2, 0, may_throw(user_exception)).
:- pragma exceptions(predicate, (tree234.from_rev_sorted_assoc_list), 2, 0, may_throw(user_exception)).
:- pragma exceptions(function, (tree234.foldl), 4, 0, may_throw(user_exception)).
:- pragma exceptions(predicate, (tree234.foldl), 4, 0, may_throw(user_exception)).
:- pragma exceptions(predicate, (tree234.foldl), 4, 1, may_throw(user_exception)).
:- pragma exceptions(predicate, (tree234.foldl), 4, 2, may_throw(user_exception)).
:- pragma exceptions(predicate, (tree234.foldl), 4, 3, may_throw(user_exception)).
:- pragma exceptions(predicate, (tree234.foldl), 4, 4, may_throw(user_exception)).
:- pragma exceptions(predicate, (tree234.foldl), 4, 5, may_throw(user_exception)).
:- pragma exceptions(predicate, (tree234.foldl), 4, 6, may_throw(user_exception)).
:- pragma exceptions(predicate, (tree234.foldl), 4, 7, may_throw(user_exception)).
:- pragma exceptions(predicate, (tree234.foldl), 4, 8, may_throw(user_exception)).
:- pragma exceptions(predicate, (tree234.foldl2), 6, 0, may_throw(user_exception)).
:- pragma exceptions(predicate, (tree234.foldl2), 6, 1, may_throw(user_exception)).
:- pragma exceptions(predicate, (tree234.foldl2), 6, 2, may_throw(user_exception)).
:- pragma exceptions(predicate, (tree234.foldl2), 6, 3, may_throw(user_exception)).
:- pragma exceptions(predicate, (tree234.foldl2), 6, 4, may_throw(user_exception)).
:- pragma exceptions(predicate, (tree234.foldl2), 6, 5, may_throw(user_exception)).
:- pragma exceptions(predicate, (tree234.foldl2), 6, 6, may_throw(user_exception)).
:- pragma exceptions(predicate, (tree234.foldl2), 6, 7, may_throw(user_exception)).
:- pragma exceptions(predicate, (tree234.foldl2), 6, 8, may_throw(user_exception)).
:- pragma exceptions(predicate, (tree234.foldl2), 6, 9, may_throw(user_exception)).
:- pragma exceptions(predicate, (tree234.foldl2), 6, 10, may_throw(user_exception)).
:- pragma exceptions(predicate, (tree234.foldl3), 8, 0, may_throw(user_exception)).
:- pragma exceptions(predicate, (tree234.foldl3), 8, 1, may_throw(user_exception)).
:- pragma exceptions(predicate, (tree234.foldl3), 8, 2, may_throw(user_exception)).
:- pragma exceptions(predicate, (tree234.foldl3), 8, 3, may_throw(user_exception)).
:- pragma exceptions(predicate, (tree234.foldl3), 8, 4, may_throw(user_exception)).
:- pragma exceptions(predicate, (tree234.foldl3), 8, 5, may_throw(user_exception)).
:- pragma exceptions(predicate, (tree234.foldl3), 8, 6, may_throw(user_exception)).
:- pragma exceptions(predicate, (tree234.foldl3), 8, 7, may_throw(user_exception)).
:- pragma exceptions(predicate, (tree234.foldl4), 10, 0, may_throw(user_exception)).
:- pragma exceptions(predicate, (tree234.foldl4), 10, 1, may_throw(user_exception)).
:- pragma exceptions(predicate, (tree234.foldl4), 10, 2, may_throw(user_exception)).
:- pragma exceptions(predicate, (tree234.foldl4), 10, 3, may_throw(user_exception)).
:- pragma exceptions(predicate, (tree234.foldl4), 10, 4, may_throw(user_exception)).
:- pragma exceptions(predicate, (tree234.foldl4), 10, 5, may_throw(user_exception)).
:- pragma exceptions(predicate, (tree234.foldl_values), 4, 0, may_throw(user_exception)).
:- pragma exceptions(predicate, (tree234.foldl_values), 4, 1, may_throw(user_exception)).
:- pragma exceptions(predicate, (tree234.foldl_values), 4, 2, may_throw(user_exception)).
:- pragma exceptions(predicate, (tree234.foldl_values), 4, 3, may_throw(user_exception)).
:- pragma exceptions(predicate, (tree234.foldl_values), 4, 4, may_throw(user_exception)).
:- pragma exceptions(predicate, (tree234.foldl_values), 4, 5, may_throw(user_exception)).
:- pragma exceptions(predicate, (tree234.foldl_values), 4, 6, may_throw(user_exception)).
:- pragma exceptions(predicate, (tree234.foldl_values), 4, 7, may_throw(user_exception)).
:- pragma exceptions(predicate, (tree234.foldl_values), 4, 8, may_throw(user_exception)).
:- pragma exceptions(predicate, (tree234.foldl2_values), 6, 0, may_throw(user_exception)).
:- pragma exceptions(predicate, (tree234.foldl2_values), 6, 1, may_throw(user_exception)).
:- pragma exceptions(predicate, (tree234.foldl2_values), 6, 2, may_throw(user_exception)).
:- pragma exceptions(predicate, (tree234.foldl2_values), 6, 3, may_throw(user_exception)).
:- pragma exceptions(predicate, (tree234.foldl2_values), 6, 4, may_throw(user_exception)).
:- pragma exceptions(predicate, (tree234.foldl2_values), 6, 5, may_throw(user_exception)).
:- pragma exceptions(predicate, (tree234.foldl2_values), 6, 6, may_throw(user_exception)).
:- pragma exceptions(predicate, (tree234.foldl2_values), 6, 7, may_throw(user_exception)).
:- pragma exceptions(predicate, (tree234.foldl2_values), 6, 8, may_throw(user_exception)).
:- pragma exceptions(predicate, (tree234.foldl3_values), 8, 0, may_throw(user_exception)).
:- pragma exceptions(predicate, (tree234.foldl3_values), 8, 1, may_throw(user_exception)).
:- pragma exceptions(predicate, (tree234.foldl3_values), 8, 2, may_throw(user_exception)).
:- pragma exceptions(predicate, (tree234.foldl3_values), 8, 3, may_throw(user_exception)).
:- pragma exceptions(predicate, (tree234.foldl3_values), 8, 4, may_throw(user_exception)).
:- pragma exceptions(predicate, (tree234.foldl3_values), 8, 5, may_throw(user_exception)).
:- pragma exceptions(predicate, (tree234.foldl3_values), 8, 6, may_throw(user_exception)).
:- pragma exceptions(predicate, (tree234.foldl3_values), 8, 7, may_throw(user_exception)).
:- pragma exceptions(predicate, (tree234.foldl3_values), 8, 8, may_throw(user_exception)).
:- pragma exceptions(function, (tree234.foldr), 4, 0, may_throw(user_exception)).
:- pragma exceptions(predicate, (tree234.foldr), 4, 0, may_throw(user_exception)).
:- pragma exceptions(predicate, (tree234.foldr), 4, 1, may_throw(user_exception)).
:- pragma exceptions(predicate, (tree234.foldr), 4, 2, may_throw(user_exception)).
:- pragma exceptions(predicate, (tree234.foldr), 4, 3, may_throw(user_exception)).
:- pragma exceptions(predicate, (tree234.foldr), 4, 4, may_throw(user_exception)).
:- pragma exceptions(predicate, (tree234.foldr), 4, 5, may_throw(user_exception)).
:- pragma exceptions(predicate, (tree234.foldr), 4, 6, may_throw(user_exception)).
:- pragma exceptions(predicate, (tree234.foldr), 4, 7, may_throw(user_exception)).
:- pragma exceptions(predicate, (tree234.foldr), 4, 8, may_throw(user_exception)).
:- pragma exceptions(predicate, (tree234.foldr2), 6, 0, may_throw(user_exception)).
:- pragma exceptions(predicate, (tree234.foldr2), 6, 1, may_throw(user_exception)).
:- pragma exceptions(predicate, (tree234.foldr2), 6, 2, may_throw(user_exception)).
:- pragma exceptions(predicate, (tree234.foldr2), 6, 3, may_throw(user_exception)).
:- pragma exceptions(predicate, (tree234.foldr2), 6, 4, may_throw(user_exception)).
:- pragma exceptions(predicate, (tree234.foldr2), 6, 5, may_throw(user_exception)).
:- pragma exceptions(predicate, (tree234.foldr2), 6, 6, may_throw(user_exception)).
:- pragma exceptions(predicate, (tree234.foldr3), 8, 0, may_throw(user_exception)).
:- pragma exceptions(predicate, (tree234.foldr3), 8, 1, may_throw(user_exception)).
:- pragma exceptions(predicate, (tree234.foldr3), 8, 2, may_throw(user_exception)).
:- pragma exceptions(predicate, (tree234.foldr3), 8, 3, may_throw(user_exception)).
:- pragma exceptions(predicate, (tree234.foldr3), 8, 4, may_throw(user_exception)).
:- pragma exceptions(predicate, (tree234.foldr3), 8, 5, may_throw(user_exception)).
:- pragma exceptions(predicate, (tree234.foldr3), 8, 6, may_throw(user_exception)).
:- pragma exceptions(predicate, (tree234.foldr3), 8, 7, may_throw(user_exception)).
:- pragma exceptions(predicate, (tree234.foldr4), 10, 0, may_throw(user_exception)).
:- pragma exceptions(predicate, (tree234.foldr4), 10, 1, may_throw(user_exception)).
:- pragma exceptions(predicate, (tree234.foldr4), 10, 2, may_throw(user_exception)).
:- pragma exceptions(predicate, (tree234.foldr4), 10, 3, may_throw(user_exception)).
:- pragma exceptions(predicate, (tree234.foldr4), 10, 4, may_throw(user_exception)).
:- pragma exceptions(predicate, (tree234.foldr4), 10, 5, may_throw(user_exception)).
:- pragma exceptions(predicate, (tree234.foldr4), 10, 6, may_throw(user_exception)).
:- pragma exceptions(predicate, (tree234.foldr4), 10, 7, may_throw(user_exception)).
:- pragma exceptions(predicate, (tree234.foldr4), 10, 8, may_throw(user_exception)).
:- pragma exceptions(function, (tree234.map_values), 3, 0, may_throw(user_exception)).
:- pragma exceptions(predicate, (tree234.map_values), 3, 0, may_throw(user_exception)).
:- pragma exceptions(predicate, (tree234.map_values), 3, 1, may_throw(user_exception)).
:- pragma exceptions(function, (tree234.map_values_only), 3, 0, may_throw(user_exception)).
:- pragma exceptions(predicate, (tree234.map_values_only), 3, 0, may_throw(user_exception)).
:- pragma exceptions(predicate, (tree234.map_values_only), 3, 1, may_throw(user_exception)).
:- pragma exceptions(predicate, (tree234.map_foldl), 5, 0, may_throw(user_exception)).
:- pragma exceptions(predicate, (tree234.map_foldl), 5, 1, may_throw(user_exception)).
:- pragma exceptions(predicate, (tree234.map_foldl), 5, 2, may_throw(user_exception)).
:- pragma exceptions(predicate, (tree234.map_foldl), 5, 3, may_throw(user_exception)).
:- pragma exceptions(predicate, (tree234.map_foldl), 5, 4, may_throw(user_exception)).
:- pragma exceptions(predicate, (tree234.map_foldl), 5, 5, may_throw(user_exception)).
:- pragma exceptions(predicate, (tree234.map_foldl2), 7, 0, may_throw(user_exception)).
:- pragma exceptions(predicate, (tree234.map_foldl2), 7, 1, may_throw(user_exception)).
:- pragma exceptions(predicate, (tree234.map_foldl2), 7, 2, may_throw(user_exception)).
:- pragma exceptions(predicate, (tree234.map_foldl2), 7, 3, may_throw(user_exception)).
:- pragma exceptions(predicate, (tree234.map_foldl2), 7, 4, may_throw(user_exception)).
:- pragma exceptions(predicate, (tree234.map_foldl2), 7, 5, may_throw(user_exception)).
:- pragma exceptions(predicate, (tree234.map_foldl2), 7, 6, may_throw(user_exception)).
:- pragma exceptions(predicate, (tree234.map_foldl3), 9, 0, may_throw(user_exception)).
:- pragma exceptions(predicate, (tree234.map_foldl3), 9, 1, may_throw(user_exception)).
:- pragma exceptions(predicate, (tree234.map_foldl3), 9, 2, may_throw(user_exception)).
:- pragma exceptions(predicate, (tree234.map_foldl3), 9, 3, may_throw(user_exception)).
:- pragma exceptions(predicate, (tree234.map_foldl3), 9, 4, may_throw(user_exception)).
:- pragma exceptions(predicate, (tree234.map_foldl3), 9, 5, may_throw(user_exception)).
:- pragma exceptions(predicate, (tree234.map_foldl3), 9, 6, may_throw(user_exception)).
:- pragma exceptions(predicate, (tree234.map_foldl3), 9, 7, may_throw(user_exception)).
:- pragma exceptions(predicate, (tree234.map_values_foldl), 5, 0, may_throw(user_exception)).
:- pragma exceptions(predicate, (tree234.map_values_foldl), 5, 1, may_throw(user_exception)).
:- pragma exceptions(predicate, (tree234.map_values_foldl), 5, 2, may_throw(user_exception)).
:- pragma exceptions(predicate, (tree234.map_values_foldl2), 7, 0, may_throw(user_exception)).
:- pragma exceptions(predicate, (tree234.map_values_foldl2), 7, 1, may_throw(user_exception)).
:- pragma exceptions(predicate, (tree234.map_values_foldl2), 7, 2, may_throw(user_exception)).
:- pragma exceptions(predicate, (tree234.map_values_foldl2), 7, 3, may_throw(user_exception)).
:- pragma exceptions(predicate, (tree234.map_values_foldl3), 9, 0, may_throw(user_exception)).
:- pragma exceptions(predicate, (tree234.map_values_foldl3), 9, 1, may_throw(user_exception)).
:- pragma exceptions(predicate, (tree234.map_values_foldl3), 9, 2, may_throw(user_exception)).
:- pragma exceptions(predicate, (tree234.map_values_foldl3), 9, 3, may_throw(user_exception)).
:- pragma exceptions(predicate, (tree234.map_values_foldl3), 9, 4, may_throw(user_exception)).
:- pragma exceptions(function, (tree234.tree234_to_doc), 2, 0, may_throw(user_exception)).
:- pragma exceptions(predicate, (tree234.find_min_size_based_on_depth), 2, 0, will_not_throw).
:- pragma exceptions(predicate, (tree234.well_formed), 2, 0, may_throw(user_exception)).
:- pragma exceptions(predicate, (tree234.delete_2), 4, 0, may_throw(user_exception)).
:- pragma exceptions(predicate, (tree234.remove_2), 5, 0, may_throw(user_exception)).
:- pragma exceptions(predicate, (tree234.remove_smallest_2), 5, 0, may_throw(user_exception)).
:- pragma exceptions(predicate, (tree234.keys_acc), 3, 0, will_not_throw).
:- pragma exceptions(predicate, (tree234.values_acc), 3, 0, will_not_throw).
:- pragma exceptions(predicate, (tree234.keys_and_values_acc), 5, 0, will_not_throw).
:- pragma exceptions(predicate, (tree234.tree234_to_assoc_list_acc), 3, 0, will_not_throw).
:- pragma exceptions(predicate, (tree234.assoc_list_to_tree234_acc), 3, 0, may_throw(type_exception)).
:- pragma exceptions(predicate, (tree234.min_size_based_on_depth), 2, 0, will_not_throw).
:- pragma exceptions(predicate, (tree234.find_depth), 2, 0, will_not_throw).
:- pragma termination_info((tree234.init) = (builtin.out), finite(0, [no, no, no]), cannot_loop).
:- pragma termination_info(tree234.init((builtin.uo)), finite(0, [no, no, no]), cannot_loop).
:- pragma termination_info(tree234.singleton((builtin.in), (builtin.in)) = (builtin.out), finite(4, [no, no, yes, yes, no]), cannot_loop).
:- pragma termination_info(tree234.is_empty((builtin.in)), finite(0, [no, no, no]), cannot_loop).
:- pragma termination_info(tree234.equal((builtin.in), (builtin.in)), finite(0, [no, no, no, no]), can_loop).
:- pragma termination_info(tree234.member((builtin.in), (builtin.out), (builtin.out)), finite(-4, [no, no, yes, no, no]), cannot_loop).
:- pragma termination_info(tree234.search((builtin.in), (builtin.in), (builtin.out)), finite(-4, [no, no, yes, no, no]), cannot_loop).
:- pragma termination_info(tree234.lookup((builtin.in), (builtin.in)) = (builtin.out), finite(-4, [no, no, yes, no, no]), can_loop).
:- pragma termination_info(tree234.lookup((builtin.in), (builtin.in), (builtin.out)), finite(-4, [no, no, yes, no, no]), can_loop).
:- pragma termination_info(tree234.lower_bound_search((builtin.in), (builtin.in), (builtin.out), (builtin.out)), finite(-4, [no, no, yes, yes, no, no]), cannot_loop).
:- pragma termination_info(tree234.lower_bound_lookup((builtin.in), (builtin.in), (builtin.out), (builtin.out)), finite(-4, [no, no, yes, yes, no, no]), can_loop).
:- pragma termination_info(tree234.upper_bound_search((builtin.in), (builtin.in), (builtin.out), (builtin.out)), finite(-4, [no, no, yes, yes, no, no]), cannot_loop).
:- pragma termination_info(tree234.upper_bound_lookup((builtin.in), (builtin.in), (builtin.out), (builtin.out)), finite(-4, [no, no, yes, yes, no, no]), can_loop).
:- pragma termination_info(tree234.max_key((builtin.in)) = (builtin.out), finite(-4, [no, no, yes, no]), cannot_loop).
:- pragma termination_info(tree234.min_key((builtin.in)) = (builtin.out), finite(-4, [no, no, yes, no]), cannot_loop).
:- pragma termination_info(tree234.insert((builtin.in), (builtin.in), (builtin.in), (builtin.out)), infinite, cannot_loop).
:- pragma termination_info(tree234.search_insert((builtin.in), (builtin.in), (builtin.out), (builtin.in), (builtin.out)), infinite, cannot_loop).
:- pragma termination_info(tree234.update((builtin.in), (builtin.in), (builtin.in), (builtin.out)), finite(0, [no, no, no, yes, yes, no]), cannot_loop).
:- pragma termination_info(tree234.set((builtin.in), (builtin.in), (builtin.in)) = (builtin.out), infinite, cannot_loop).
:- pragma termination_info(tree234.set((builtin.in), (builtin.in), (builtin.in), (builtin.out)), infinite, cannot_loop).
:- pragma termination_info(tree234.transform_value(builtin.in((pred((builtin.in), (builtin.out)) is det)), (builtin.in), (builtin.in), (builtin.out)), infinite, can_loop).
:- pragma termination_info(tree234.delete((builtin.in), (builtin.in)) = (builtin.out), infinite, can_loop).
:- pragma termination_info(tree234.delete((builtin.in), (builtin.in), (builtin.out)), infinite, can_loop).
:- pragma termination_info(tree234.remove((builtin.in), (builtin.out), (builtin.in), (builtin.out)), infinite, can_loop).
:- pragma termination_info(tree234.remove_smallest((builtin.out), (builtin.out), (builtin.in), (builtin.out)), infinite, can_loop).
:- pragma termination_info(tree234.keys((builtin.in)) = (builtin.out), finite(0, [no, no, yes, no]), cannot_loop).
:- pragma termination_info(tree234.keys((builtin.in), (builtin.out)), finite(0, [no, no, yes, no]), cannot_loop).
:- pragma termination_info(tree234.values((builtin.in)) = (builtin.out), finite(0, [no, no, yes, no]), cannot_loop).
:- pragma termination_info(tree234.values((builtin.in), (builtin.out)), finite(0, [no, no, yes, no]), cannot_loop).
:- pragma termination_info(tree234.keys_and_values((builtin.in), (builtin.out), (builtin.out)), infinite, can_loop).
:- pragma termination_info(tree234.count((builtin.in)) = (builtin.out), finite(0, [no, no, no, no]), cannot_loop).
:- pragma termination_info(tree234.count((builtin.in), (builtin.out)), finite(0, [no, no, no, no]), cannot_loop).
:- pragma termination_info(tree234.tree234_to_assoc_list((builtin.in)) = (builtin.out), infinite, can_loop).
:- pragma termination_info(tree234.tree234_to_assoc_list((builtin.in), (builtin.out)), infinite, can_loop).
:- pragma termination_info(tree234.assoc_list_to_tree234((builtin.in)) = (builtin.out), infinite, can_loop).
:- pragma termination_info(tree234.assoc_list_to_tree234((builtin.in), (builtin.out)), infinite, can_loop).
:- pragma termination_info(tree234.from_sorted_assoc_list((builtin.in), (builtin.out)), finite(0, [no, no, yes, no]), can_loop).
:- pragma termination_info(tree234.from_rev_sorted_assoc_list((builtin.in), (builtin.out)), finite(0, [no, no, yes, no]), can_loop).
:- pragma termination_info(tree234.foldl((builtin.in), (builtin.in), (builtin.in)) = (builtin.out), infinite, can_loop).
:- pragma termination_info(tree234.foldl((pred((builtin.in), (builtin.in), (builtin.in), (builtin.out)) is det), (builtin.in), (builtin.in), (builtin.out)), infinite, can_loop).
:- pragma termination_info(tree234.foldl((pred((builtin.in), (builtin.in), (builtin.mdi), (builtin.muo)) is det), (builtin.in), (builtin.mdi), (builtin.muo)), infinite, can_loop).
:- pragma termination_info(tree234.foldl((pred((builtin.in), (builtin.in), (builtin.di), (builtin.uo)) is det), (builtin.in), (builtin.di), (builtin.uo)), infinite, can_loop).
:- pragma termination_info(tree234.foldl((pred((builtin.in), (builtin.in), (builtin.in), (builtin.out)) is semidet), (builtin.in), (builtin.in), (builtin.out)), infinite, can_loop).
:- pragma termination_info(tree234.foldl((pred((builtin.in), (builtin.in), (builtin.mdi), (builtin.muo)) is semidet), (builtin.in), (builtin.mdi), (builtin.muo)), infinite, can_loop).
:- pragma termination_info(tree234.foldl((pred((builtin.in), (builtin.in), (builtin.di), (builtin.uo)) is semidet), (builtin.in), (builtin.di), (builtin.uo)), infinite, can_loop).
:- pragma termination_info(tree234.foldl((pred((builtin.in), (builtin.in), (builtin.in), (builtin.out)) is cc_multi), (builtin.in), (builtin.in), (builtin.out)), infinite, can_loop).
:- pragma termination_info(tree234.foldl((pred((builtin.in), (builtin.in), (builtin.di), (builtin.uo)) is cc_multi), (builtin.in), (builtin.di), (builtin.uo)), infinite, can_loop).
:- pragma termination_info(tree234.foldl((pred((builtin.in), (builtin.in), (builtin.mdi), (builtin.muo)) is cc_multi), (builtin.in), (builtin.mdi), (builtin.muo)), infinite, can_loop).
:- pragma termination_info(tree234.foldl2((pred((builtin.in), (builtin.in), (builtin.in), (builtin.out), (builtin.in), (builtin.out)) is det), (builtin.in), (builtin.in), (builtin.out), (builtin.in), (builtin.out)), infinite, can_loop).
:- pragma termination_info(tree234.foldl2((pred((builtin.in), (builtin.in), (builtin.in), (builtin.out), (builtin.mdi), (builtin.muo)) is det), (builtin.in), (builtin.in), (builtin.out), (builtin.mdi), (builtin.muo)), infinite, can_loop).
:- pragma termination_info(tree234.foldl2((pred((builtin.in), (builtin.in), (builtin.in), (builtin.out), (builtin.di), (builtin.uo)) is det), (builtin.in), (builtin.in), (builtin.out), (builtin.di), (builtin.uo)), infinite, can_loop).
:- pragma termination_info(tree234.foldl2((pred((builtin.in), (builtin.in), (builtin.di), (builtin.uo), (builtin.di), (builtin.uo)) is det), (builtin.in), (builtin.di), (builtin.uo), (builtin.di), (builtin.uo)), infinite, can_loop).
:- pragma termination_info(tree234.foldl2((pred((builtin.in), (builtin.in), (builtin.in), (builtin.out), (builtin.in), (builtin.out)) is semidet), (builtin.in), (builtin.in), (builtin.out), (builtin.in), (builtin.out)), infinite, can_loop).
:- pragma termination_info(tree234.foldl2((pred((builtin.in), (builtin.in), (builtin.in), (builtin.out), (builtin.mdi), (builtin.muo)) is semidet), (builtin.in), (builtin.in), (builtin.out), (builtin.mdi), (builtin.muo)), infinite, can_loop).
:- pragma termination_info(tree234.foldl2((pred((builtin.in), (builtin.in), (builtin.in), (builtin.out), (builtin.di), (builtin.uo)) is semidet), (builtin.in), (builtin.in), (builtin.out), (builtin.di), (builtin.uo)), infinite, can_loop).
:- pragma termination_info(tree234.foldl2((pred((builtin.in), (builtin.in), (builtin.in), (builtin.out), (builtin.in), (builtin.out)) is cc_multi), (builtin.in), (builtin.in), (builtin.out), (builtin.in), (builtin.out)), infinite, can_loop).
:- pragma termination_info(tree234.foldl2((pred((builtin.in), (builtin.in), (builtin.in), (builtin.out), (builtin.mdi), (builtin.muo)) is cc_multi), (builtin.in), (builtin.in), (builtin.out), (builtin.mdi), (builtin.muo)), infinite, can_loop).
:- pragma termination_info(tree234.foldl2((pred((builtin.in), (builtin.in), (builtin.in), (builtin.out), (builtin.di), (builtin.uo)) is cc_multi), (builtin.in), (builtin.in), (builtin.out), (builtin.di), (builtin.uo)), infinite, can_loop).
:- pragma termination_info(tree234.foldl2((pred((builtin.in), (builtin.in), (builtin.di), (builtin.uo), (builtin.di), (builtin.uo)) is cc_multi), (builtin.in), (builtin.di), (builtin.uo), (builtin.di), (builtin.uo)), infinite, can_loop).
:- pragma termination_info(tree234.foldl3((pred((builtin.in), (builtin.in), (builtin.in), (builtin.out), (builtin.in), (builtin.out), (builtin.in), (builtin.out)) is det), (builtin.in), (builtin.in), (builtin.out), (builtin.in), (builtin.out), (builtin.in), (builtin.out)), infinite, can_loop).
:- pragma termination_info(tree234.foldl3((pred((builtin.in), (builtin.in), (builtin.in), (builtin.out), (builtin.in), (builtin.out), (builtin.mdi), (builtin.muo)) is det), (builtin.in), (builtin.in), (builtin.out), (builtin.in), (builtin.out), (builtin.mdi), (builtin.muo)), infinite, can_loop).
:- pragma termination_info(tree234.foldl3((pred((builtin.in), (builtin.in), (builtin.in), (builtin.out), (builtin.in), (builtin.out), (builtin.di), (builtin.uo)) is det), (builtin.in), (builtin.in), (builtin.out), (builtin.in), (builtin.out), (builtin.di), (builtin.uo)), infinite, can_loop).
:- pragma termination_info(tree234.foldl3((pred((builtin.in), (builtin.in), (builtin.in), (builtin.out), (builtin.di), (builtin.uo), (builtin.di), (builtin.uo)) is det), (builtin.in), (builtin.in), (builtin.out), (builtin.di), (builtin.uo), (builtin.di), (builtin.uo)), infinite, can_loop).
:- pragma termination_info(tree234.foldl3((pred((builtin.in), (builtin.in), (builtin.di), (builtin.uo), (builtin.di), (builtin.uo), (builtin.di), (builtin.uo)) is det), (builtin.in), (builtin.di), (builtin.uo), (builtin.di), (builtin.uo), (builtin.di), (builtin.uo)), infinite, can_loop).
:- pragma termination_info(tree234.foldl3((pred((builtin.in), (builtin.in), (builtin.in), (builtin.out), (builtin.in), (builtin.out), (builtin.in), (builtin.out)) is semidet), (builtin.in), (builtin.in), (builtin.out), (builtin.in), (builtin.out), (builtin.in), (builtin.out)), infinite, can_loop).
:- pragma termination_info(tree234.foldl3((pred((builtin.in), (builtin.in), (builtin.in), (builtin.out), (builtin.in), (builtin.out), (builtin.mdi), (builtin.muo)) is semidet), (builtin.in), (builtin.in), (builtin.out), (builtin.in), (builtin.out), (builtin.mdi), (builtin.muo)), infinite, can_loop).
:- pragma termination_info(tree234.foldl3((pred((builtin.in), (builtin.in), (builtin.in), (builtin.out), (builtin.in), (builtin.out), (builtin.di), (builtin.uo)) is semidet), (builtin.in), (builtin.in), (builtin.out), (builtin.in), (builtin.out), (builtin.di), (builtin.uo)), infinite, can_loop).
:- pragma termination_info(tree234.foldl4((pred((builtin.in), (builtin.in), (builtin.in), (builtin.out), (builtin.in), (builtin.out), (builtin.in), (builtin.out), (builtin.in), (builtin.out)) is det), (builtin.in), (builtin.in), (builtin.out), (builtin.in), (builtin.out), (builtin.in), (builtin.out), (builtin.in), (builtin.out)), infinite, can_loop).
:- pragma termination_info(tree234.foldl4((pred((builtin.in), (builtin.in), (builtin.in), (builtin.out), (builtin.in), (builtin.out), (builtin.in), (builtin.out), (builtin.in), (builtin.out)) is semidet), (builtin.in), (builtin.in), (builtin.out), (builtin.in), (builtin.out), (builtin.in), (builtin.out), (builtin.in), (builtin.out)), infinite, can_loop).
:- pragma termination_info(tree234.foldl4((pred((builtin.in), (builtin.in), (builtin.in), (builtin.out), (builtin.in), (builtin.out), (builtin.in), (builtin.out), (builtin.di), (builtin.uo)) is det), (builtin.in), (builtin.in), (builtin.out), (builtin.in), (builtin.out), (builtin.in), (builtin.out), (builtin.di), (builtin.uo)), infinite, can_loop).
:- pragma termination_info(tree234.foldl4((pred((builtin.in), (builtin.in), (builtin.in), (builtin.out), (builtin.in), (builtin.out), (builtin.di), (builtin.uo), (builtin.di), (builtin.uo)) is det), (builtin.in), (builtin.in), (builtin.out), (builtin.in), (builtin.out), (builtin.di), (builtin.uo), (builtin.di), (builtin.uo)), infinite, can_loop).
:- pragma termination_info(tree234.foldl4((pred((builtin.in), (builtin.in), (builtin.in), (builtin.out), (builtin.di), (builtin.uo), (builtin.di), (builtin.uo), (builtin.di), (builtin.uo)) is det), (builtin.in), (builtin.in), (builtin.out), (builtin.di), (builtin.uo), (builtin.di), (builtin.uo), (builtin.di), (builtin.uo)), infinite, can_loop).
:- pragma termination_info(tree234.foldl4((pred((builtin.in), (builtin.in), (builtin.di), (builtin.uo), (builtin.di), (builtin.uo), (builtin.di), (builtin.uo), (builtin.di), (builtin.uo)) is det), (builtin.in), (builtin.di), (builtin.uo), (builtin.di), (builtin.uo), (builtin.di), (builtin.uo), (builtin.di), (builtin.uo)), infinite, can_loop).
:- pragma termination_info(tree234.foldl_values((pred((builtin.in), (builtin.in), (builtin.out)) is det), (builtin.in), (builtin.in), (builtin.out)), infinite, can_loop).
:- pragma termination_info(tree234.foldl_values((pred((builtin.in), (builtin.mdi), (builtin.muo)) is det), (builtin.in), (builtin.mdi), (builtin.muo)), infinite, can_loop).
:- pragma termination_info(tree234.foldl_values((pred((builtin.in), (builtin.di), (builtin.uo)) is det), (builtin.in), (builtin.di), (builtin.uo)), infinite, can_loop).
:- pragma termination_info(tree234.foldl_values((pred((builtin.in), (builtin.in), (builtin.out)) is semidet), (builtin.in), (builtin.in), (builtin.out)), infinite, can_loop).
:- pragma termination_info(tree234.foldl_values((pred((builtin.in), (builtin.mdi), (builtin.muo)) is semidet), (builtin.in), (builtin.mdi), (builtin.muo)), infinite, can_loop).
:- pragma termination_info(tree234.foldl_values((pred((builtin.in), (builtin.di), (builtin.uo)) is semidet), (builtin.in), (builtin.di), (builtin.uo)), infinite, can_loop).
:- pragma termination_info(tree234.foldl_values((pred((builtin.in), (builtin.in), (builtin.out)) is cc_multi), (builtin.in), (builtin.in), (builtin.out)), infinite, can_loop).
:- pragma termination_info(tree234.foldl_values((pred((builtin.in), (builtin.di), (builtin.uo)) is cc_multi), (builtin.in), (builtin.di), (builtin.uo)), infinite, can_loop).
:- pragma termination_info(tree234.foldl_values((pred((builtin.in), (builtin.mdi), (builtin.muo)) is cc_multi), (builtin.in), (builtin.mdi), (builtin.muo)), infinite, can_loop).
:- pragma termination_info(tree234.foldl2_values((pred((builtin.in), (builtin.in), (builtin.out), (builtin.in), (builtin.out)) is det), (builtin.in), (builtin.in), (builtin.out), (builtin.in), (builtin.out)), infinite, can_loop).
:- pragma termination_info(tree234.foldl2_values((pred((builtin.in), (builtin.in), (builtin.out), (builtin.mdi), (builtin.muo)) is det), (builtin.in), (builtin.in), (builtin.out), (builtin.mdi), (builtin.muo)), infinite, can_loop).
:- pragma termination_info(tree234.foldl2_values((pred((builtin.in), (builtin.in), (builtin.out), (builtin.di), (builtin.uo)) is det), (builtin.in), (builtin.in), (builtin.out), (builtin.di), (builtin.uo)), infinite, can_loop).
:- pragma termination_info(tree234.foldl2_values((pred((builtin.in), (builtin.in), (builtin.out), (builtin.in), (builtin.out)) is semidet), (builtin.in), (builtin.in), (builtin.out), (builtin.in), (builtin.out)), infinite, can_loop).
:- pragma termination_info(tree234.foldl2_values((pred((builtin.in), (builtin.in), (builtin.out), (builtin.mdi), (builtin.muo)) is semidet), (builtin.in), (builtin.in), (builtin.out), (builtin.mdi), (builtin.muo)), infinite, can_loop).
:- pragma termination_info(tree234.foldl2_values((pred((builtin.in), (builtin.in), (builtin.out), (builtin.di), (builtin.uo)) is semidet), (builtin.in), (builtin.in), (builtin.out), (builtin.di), (builtin.uo)), infinite, can_loop).
:- pragma termination_info(tree234.foldl2_values((pred((builtin.in), (builtin.in), (builtin.out), (builtin.in), (builtin.out)) is cc_multi), (builtin.in), (builtin.in), (builtin.out), (builtin.in), (builtin.out)), infinite, can_loop).
:- pragma termination_info(tree234.foldl2_values((pred((builtin.in), (builtin.in), (builtin.out), (builtin.mdi), (builtin.muo)) is cc_multi), (builtin.in), (builtin.in), (builtin.out), (builtin.mdi), (builtin.muo)), infinite, can_loop).
:- pragma termination_info(tree234.foldl2_values((pred((builtin.in), (builtin.in), (builtin.out), (builtin.di), (builtin.uo)) is cc_multi), (builtin.in), (builtin.in), (builtin.out), (builtin.di), (builtin.uo)), infinite, can_loop).
:- pragma termination_info(tree234.foldl3_values((pred((builtin.in), (builtin.in), (builtin.out), (builtin.in), (builtin.out), (builtin.in), (builtin.out)) is det), (builtin.in), (builtin.in), (builtin.out), (builtin.in), (builtin.out), (builtin.in), (builtin.out)), infinite, can_loop).
:- pragma termination_info(tree234.foldl3_values((pred((builtin.in), (builtin.in), (builtin.out), (builtin.in), (builtin.out), (builtin.mdi), (builtin.muo)) is det), (builtin.in), (builtin.in), (builtin.out), (builtin.in), (builtin.out), (builtin.mdi), (builtin.muo)), infinite, can_loop).
:- pragma termination_info(tree234.foldl3_values((pred((builtin.in), (builtin.in), (builtin.out), (builtin.in), (builtin.out), (builtin.di), (builtin.uo)) is det), (builtin.in), (builtin.in), (builtin.out), (builtin.in), (builtin.out), (builtin.di), (builtin.uo)), infinite, can_loop).
:- pragma termination_info(tree234.foldl3_values((pred((builtin.in), (builtin.in), (builtin.out), (builtin.in), (builtin.out), (builtin.in), (builtin.out)) is semidet), (builtin.in), (builtin.in), (builtin.out), (builtin.in), (builtin.out), (builtin.in), (builtin.out)), infinite, can_loop).
:- pragma termination_info(tree234.foldl3_values((pred((builtin.in), (builtin.in), (builtin.out), (builtin.in), (builtin.out), (builtin.mdi), (builtin.muo)) is semidet), (builtin.in), (builtin.in), (builtin.out), (builtin.in), (builtin.out), (builtin.mdi), (builtin.muo)), infinite, can_loop).
:- pragma termination_info(tree234.foldl3_values((pred((builtin.in), (builtin.in), (builtin.out), (builtin.in), (builtin.out), (builtin.di), (builtin.uo)) is semidet), (builtin.in), (builtin.in), (builtin.out), (builtin.in), (builtin.out), (builtin.di), (builtin.uo)), infinite, can_loop).
:- pragma termination_info(tree234.foldl3_values((pred((builtin.in), (builtin.in), (builtin.out), (builtin.in), (builtin.out), (builtin.in), (builtin.out)) is cc_multi), (builtin.in), (builtin.in), (builtin.out), (builtin.in), (builtin.out), (builtin.in), (builtin.out)), infinite, can_loop).
:- pragma termination_info(tree234.foldl3_values((pred((builtin.in), (builtin.in), (builtin.out), (builtin.in), (builtin.out), (builtin.mdi), (builtin.muo)) is cc_multi), (builtin.in), (builtin.in), (builtin.out), (builtin.in), (builtin.out), (builtin.mdi), (builtin.muo)), infinite, can_loop).
:- pragma termination_info(tree234.foldl3_values((pred((builtin.in), (builtin.in), (builtin.out), (builtin.in), (builtin.out), (builtin.di), (builtin.uo)) is cc_multi), (builtin.in), (builtin.in), (builtin.out), (builtin.in), (builtin.out), (builtin.di), (builtin.uo)), infinite, can_loop).
:- pragma termination_info(tree234.foldr((builtin.in), (builtin.in), (builtin.in)) = (builtin.out), infinite, can_loop).
:- pragma termination_info(tree234.foldr((pred((builtin.in), (builtin.in), (builtin.in), (builtin.out)) is det), (builtin.in), (builtin.in), (builtin.out)), infinite, can_loop).
:- pragma termination_info(tree234.foldr((pred((builtin.in), (builtin.in), (builtin.mdi), (builtin.muo)) is det), (builtin.in), (builtin.mdi), (builtin.muo)), infinite, can_loop).
:- pragma termination_info(tree234.foldr((pred((builtin.in), (builtin.in), (builtin.di), (builtin.uo)) is det), (builtin.in), (builtin.di), (builtin.uo)), infinite, can_loop).
:- pragma termination_info(tree234.foldr((pred((builtin.in), (builtin.in), (builtin.in), (builtin.out)) is semidet), (builtin.in), (builtin.in), (builtin.out)), infinite, can_loop).
:- pragma termination_info(tree234.foldr((pred((builtin.in), (builtin.in), (builtin.mdi), (builtin.muo)) is semidet), (builtin.in), (builtin.mdi), (builtin.muo)), infinite, can_loop).
:- pragma termination_info(tree234.foldr((pred((builtin.in), (builtin.in), (builtin.di), (builtin.uo)) is semidet), (builtin.in), (builtin.di), (builtin.uo)), infinite, can_loop).
:- pragma termination_info(tree234.foldr((pred((builtin.in), (builtin.in), (builtin.in), (builtin.out)) is cc_multi), (builtin.in), (builtin.in), (builtin.out)), infinite, can_loop).
:- pragma termination_info(tree234.foldr((pred((builtin.in), (builtin.in), (builtin.di), (builtin.uo)) is cc_multi), (builtin.in), (builtin.di), (builtin.uo)), infinite, can_loop).
:- pragma termination_info(tree234.foldr((pred((builtin.in), (builtin.in), (builtin.mdi), (builtin.muo)) is cc_multi), (builtin.in), (builtin.mdi), (builtin.muo)), infinite, can_loop).
:- pragma termination_info(tree234.foldr2((pred((builtin.in), (builtin.in), (builtin.in), (builtin.out), (builtin.in), (builtin.out)) is det), (builtin.in), (builtin.in), (builtin.out), (builtin.in), (builtin.out)), infinite, can_loop).
:- pragma termination_info(tree234.foldr2((pred((builtin.in), (builtin.in), (builtin.in), (builtin.out), (builtin.mdi), (builtin.muo)) is det), (builtin.in), (builtin.in), (builtin.out), (builtin.mdi), (builtin.muo)), infinite, can_loop).
:- pragma termination_info(tree234.foldr2((pred((builtin.in), (builtin.in), (builtin.in), (builtin.out), (builtin.di), (builtin.uo)) is det), (builtin.in), (builtin.in), (builtin.out), (builtin.di), (builtin.uo)), infinite, can_loop).
:- pragma termination_info(tree234.foldr2((pred((builtin.in), (builtin.in), (builtin.di), (builtin.uo), (builtin.di), (builtin.uo)) is det), (builtin.in), (builtin.di), (builtin.uo), (builtin.di), (builtin.uo)), infinite, can_loop).
:- pragma termination_info(tree234.foldr2((pred((builtin.in), (builtin.in), (builtin.in), (builtin.out), (builtin.in), (builtin.out)) is semidet), (builtin.in), (builtin.in), (builtin.out), (builtin.in), (builtin.out)), infinite, can_loop).
:- pragma termination_info(tree234.foldr2((pred((builtin.in), (builtin.in), (builtin.in), (builtin.out), (builtin.mdi), (builtin.muo)) is semidet), (builtin.in), (builtin.in), (builtin.out), (builtin.mdi), (builtin.muo)), infinite, can_loop).
:- pragma termination_info(tree234.foldr2((pred((builtin.in), (builtin.in), (builtin.in), (builtin.out), (builtin.di), (builtin.uo)) is semidet), (builtin.in), (builtin.in), (builtin.out), (builtin.di), (builtin.uo)), infinite, can_loop).
:- pragma termination_info(tree234.foldr3((pred((builtin.in), (builtin.in), (builtin.in), (builtin.out), (builtin.in), (builtin.out), (builtin.in), (builtin.out)) is det), (builtin.in), (builtin.in), (builtin.out), (builtin.in), (builtin.out), (builtin.in), (builtin.out)), infinite, can_loop).
:- pragma termination_info(tree234.foldr3((pred((builtin.in), (builtin.in), (builtin.in), (builtin.out), (builtin.in), (builtin.out), (builtin.mdi), (builtin.muo)) is det), (builtin.in), (builtin.in), (builtin.out), (builtin.in), (builtin.out), (builtin.mdi), (builtin.muo)), infinite, can_loop).
:- pragma termination_info(tree234.foldr3((pred((builtin.in), (builtin.in), (builtin.in), (builtin.out), (builtin.in), (builtin.out), (builtin.di), (builtin.uo)) is det), (builtin.in), (builtin.in), (builtin.out), (builtin.in), (builtin.out), (builtin.di), (builtin.uo)), infinite, can_loop).
:- pragma termination_info(tree234.foldr3((pred((builtin.in), (builtin.in), (builtin.in), (builtin.out), (builtin.di), (builtin.uo), (builtin.di), (builtin.uo)) is det), (builtin.in), (builtin.in), (builtin.out), (builtin.di), (builtin.uo), (builtin.di), (builtin.uo)), infinite, can_loop).
:- pragma termination_info(tree234.foldr3((pred((builtin.in), (builtin.in), (builtin.di), (builtin.uo), (builtin.di), (builtin.uo), (builtin.di), (builtin.uo)) is det), (builtin.in), (builtin.di), (builtin.uo), (builtin.di), (builtin.uo), (builtin.di), (builtin.uo)), infinite, can_loop).
:- pragma termination_info(tree234.foldr3((pred((builtin.in), (builtin.in), (builtin.in), (builtin.out), (builtin.in), (builtin.out), (builtin.in), (builtin.out)) is semidet), (builtin.in), (builtin.in), (builtin.out), (builtin.in), (builtin.out), (builtin.in), (builtin.out)), infinite, can_loop).
:- pragma termination_info(tree234.foldr3((pred((builtin.in), (builtin.in), (builtin.in), (builtin.out), (builtin.in), (builtin.out), (builtin.mdi), (builtin.muo)) is semidet), (builtin.in), (builtin.in), (builtin.out), (builtin.in), (builtin.out), (builtin.mdi), (builtin.muo)), infinite, can_loop).
:- pragma termination_info(tree234.foldr3((pred((builtin.in), (builtin.in), (builtin.in), (builtin.out), (builtin.in), (builtin.out), (builtin.di), (builtin.uo)) is semidet), (builtin.in), (builtin.in), (builtin.out), (builtin.in), (builtin.out), (builtin.di), (builtin.uo)), infinite, can_loop).
:- pragma termination_info(tree234.foldr4((pred((builtin.in), (builtin.in), (builtin.in), (builtin.out), (builtin.in), (builtin.out), (builtin.in), (builtin.out), (builtin.in), (builtin.out)) is det), (builtin.in), (builtin.in), (builtin.out), (builtin.in), (builtin.out), (builtin.in), (builtin.out), (builtin.in), (builtin.out)), infinite, can_loop).
:- pragma termination_info(tree234.foldr4((pred((builtin.in), (builtin.in), (builtin.in), (builtin.out), (builtin.in), (builtin.out), (builtin.in), (builtin.out), (builtin.mdi), (builtin.muo)) is det), (builtin.in), (builtin.in), (builtin.out), (builtin.in), (builtin.out), (builtin.in), (builtin.out), (builtin.mdi), (builtin.muo)), infinite, can_loop).
:- pragma termination_info(tree234.foldr4((pred((builtin.in), (builtin.in), (builtin.in), (builtin.out), (builtin.in), (builtin.out), (builtin.in), (builtin.out), (builtin.di), (builtin.uo)) is det), (builtin.in), (builtin.in), (builtin.out), (builtin.in), (builtin.out), (builtin.in), (builtin.out), (builtin.di), (builtin.uo)), infinite, can_loop).
:- pragma termination_info(tree234.foldr4((pred((builtin.in), (builtin.in), (builtin.in), (builtin.out), (builtin.in), (builtin.out), (builtin.di), (builtin.uo), (builtin.di), (builtin.uo)) is det), (builtin.in), (builtin.in), (builtin.out), (builtin.in), (builtin.out), (builtin.di), (builtin.uo), (builtin.di), (builtin.uo)), infinite, can_loop).
:- pragma termination_info(tree234.foldr4((pred((builtin.in), (builtin.in), (builtin.in), (builtin.out), (builtin.di), (builtin.uo), (builtin.di), (builtin.uo), (builtin.di), (builtin.uo)) is det), (builtin.in), (builtin.in), (builtin.out), (builtin.di), (builtin.uo), (builtin.di), (builtin.uo), (builtin.di), (builtin.uo)), infinite, can_loop).
:- pragma termination_info(tree234.foldr4((pred((builtin.in), (builtin.in), (builtin.di), (builtin.uo), (builtin.di), (builtin.uo), (builtin.di), (builtin.uo), (builtin.di), (builtin.uo)) is det), (builtin.in), (builtin.di), (builtin.uo), (builtin.di), (builtin.uo), (builtin.di), (builtin.uo), (builtin.di), (builtin.uo)), infinite, can_loop).
:- pragma termination_info(tree234.foldr4((pred((builtin.in), (builtin.in), (builtin.in), (builtin.out), (builtin.in), (builtin.out), (builtin.in), (builtin.out), (builtin.in), (builtin.out)) is semidet), (builtin.in), (builtin.in), (builtin.out), (builtin.in), (builtin.out), (builtin.in), (builtin.out), (builtin.in), (builtin.out)), infinite, can_loop).
:- pragma termination_info(tree234.foldr4((pred((builtin.in), (builtin.in), (builtin.in), (builtin.out), (builtin.in), (builtin.out), (builtin.in), (builtin.out), (builtin.mdi), (builtin.muo)) is semidet), (builtin.in), (builtin.in), (builtin.out), (builtin.in), (builtin.out), (builtin.in), (builtin.out), (builtin.mdi), (builtin.muo)), infinite, can_loop).
:- pragma termination_info(tree234.foldr4((pred((builtin.in), (builtin.in), (builtin.in), (builtin.out), (builtin.in), (builtin.out), (builtin.in), (builtin.out), (builtin.di), (builtin.uo)) is semidet), (builtin.in), (builtin.in), (builtin.out), (builtin.in), (builtin.out), (builtin.in), (builtin.out), (builtin.di), (builtin.uo)), infinite, can_loop).
:- pragma termination_info(tree234.map_values((builtin.in), (builtin.in)) = (builtin.out), infinite, can_loop).
:- pragma termination_info(tree234.map_values((pred((builtin.in), (builtin.in), (builtin.out)) is det), (builtin.in), (builtin.out)), infinite, can_loop).
:- pragma termination_info(tree234.map_values((pred((builtin.in), (builtin.in), (builtin.out)) is semidet), (builtin.in), (builtin.out)), infinite, can_loop).
:- pragma termination_info(tree234.map_values_only((builtin.in), (builtin.in)) = (builtin.out), infinite, can_loop).
:- pragma termination_info(tree234.map_values_only((pred((builtin.in), (builtin.out)) is det), (builtin.in), (builtin.out)), infinite, can_loop).
:- pragma termination_info(tree234.map_values_only((pred((builtin.in), (builtin.out)) is semidet), (builtin.in), (builtin.out)), infinite, can_loop).
:- pragma termination_info(tree234.map_foldl((pred((builtin.in), (builtin.in), (builtin.out), (builtin.in), (builtin.out)) is det), (builtin.in), (builtin.out), (builtin.in), (builtin.out)), infinite, can_loop).
:- pragma termination_info(tree234.map_foldl((pred((builtin.in), (builtin.in), (builtin.out), (builtin.mdi), (builtin.muo)) is det), (builtin.in), (builtin.out), (builtin.mdi), (builtin.muo)), infinite, can_loop).
:- pragma termination_info(tree234.map_foldl((pred((builtin.in), (builtin.in), (builtin.out), (builtin.di), (builtin.uo)) is det), (builtin.in), (builtin.out), (builtin.di), (builtin.uo)), infinite, can_loop).
:- pragma termination_info(tree234.map_foldl((pred((builtin.in), (builtin.in), (builtin.out), (builtin.in), (builtin.out)) is semidet), (builtin.in), (builtin.out), (builtin.in), (builtin.out)), infinite, can_loop).
:- pragma termination_info(tree234.map_foldl((pred((builtin.in), (builtin.in), (builtin.out), (builtin.mdi), (builtin.muo)) is semidet), (builtin.in), (builtin.out), (builtin.mdi), (builtin.muo)), infinite, can_loop).
:- pragma termination_info(tree234.map_foldl((pred((builtin.in), (builtin.in), (builtin.out), (builtin.di), (builtin.uo)) is semidet), (builtin.in), (builtin.out), (builtin.di), (builtin.uo)), infinite, can_loop).
:- pragma termination_info(tree234.map_foldl2((pred((builtin.in), (builtin.in), (builtin.out), (builtin.in), (builtin.out), (builtin.in), (builtin.out)) is det), (builtin.in), (builtin.out), (builtin.in), (builtin.out), (builtin.in), (builtin.out)), infinite, can_loop).
:- pragma termination_info(tree234.map_foldl2((pred((builtin.in), (builtin.in), (builtin.out), (builtin.in), (builtin.out), (builtin.mdi), (builtin.muo)) is det), (builtin.in), (builtin.out), (builtin.in), (builtin.out), (builtin.mdi), (builtin.muo)), infinite, can_loop).
:- pragma termination_info(tree234.map_foldl2((pred((builtin.in), (builtin.in), (builtin.out), (builtin.di), (builtin.uo), (builtin.di), (builtin.uo)) is det), (builtin.in), (builtin.out), (builtin.di), (builtin.uo), (builtin.di), (builtin.uo)), infinite, can_loop).
:- pragma termination_info(tree234.map_foldl2((pred((builtin.in), (builtin.in), (builtin.out), (builtin.in), (builtin.out), (builtin.di), (builtin.uo)) is det), (builtin.in), (builtin.out), (builtin.in), (builtin.out), (builtin.di), (builtin.uo)), infinite, can_loop).
:- pragma termination_info(tree234.map_foldl2((pred((builtin.in), (builtin.in), (builtin.out), (builtin.in), (builtin.out), (builtin.in), (builtin.out)) is semidet), (builtin.in), (builtin.out), (builtin.in), (builtin.out), (builtin.in), (builtin.out)), infinite, can_loop).
:- pragma termination_info(tree234.map_foldl2((pred((builtin.in), (builtin.in), (builtin.out), (builtin.in), (builtin.out), (builtin.mdi), (builtin.muo)) is semidet), (builtin.in), (builtin.out), (builtin.in), (builtin.out), (builtin.mdi), (builtin.muo)), infinite, can_loop).
:- pragma termination_info(tree234.map_foldl2((pred((builtin.in), (builtin.in), (builtin.out), (builtin.in), (builtin.out), (builtin.di), (builtin.uo)) is semidet), (builtin.in), (builtin.out), (builtin.in), (builtin.out), (builtin.di), (builtin.uo)), infinite, can_loop).
:- pragma termination_info(tree234.map_foldl3((pred((builtin.in), (builtin.in), (builtin.out), (builtin.in), (builtin.out), (builtin.in), (builtin.out), (builtin.in), (builtin.out)) is det), (builtin.in), (builtin.out), (builtin.in), (builtin.out), (builtin.in), (builtin.out), (builtin.in), (builtin.out)), infinite, can_loop).
:- pragma termination_info(tree234.map_foldl3((pred((builtin.in), (builtin.in), (builtin.out), (builtin.in), (builtin.out), (builtin.in), (builtin.out), (builtin.mdi), (builtin.muo)) is det), (builtin.in), (builtin.out), (builtin.in), (builtin.out), (builtin.in), (builtin.out), (builtin.mdi), (builtin.muo)), infinite, can_loop).
:- pragma termination_info(tree234.map_foldl3((pred((builtin.in), (builtin.in), (builtin.out), (builtin.di), (builtin.uo), (builtin.di), (builtin.uo), (builtin.di), (builtin.uo)) is det), (builtin.in), (builtin.out), (builtin.di), (builtin.uo), (builtin.di), (builtin.uo), (builtin.di), (builtin.uo)), infinite, can_loop).
:- pragma termination_info(tree234.map_foldl3((pred((builtin.in), (builtin.in), (builtin.out), (builtin.in), (builtin.out), (builtin.di), (builtin.uo), (builtin.di), (builtin.uo)) is det), (builtin.in), (builtin.out), (builtin.in), (builtin.out), (builtin.di), (builtin.uo), (builtin.di), (builtin.uo)), infinite, can_loop).
:- pragma termination_info(tree234.map_foldl3((pred((builtin.in), (builtin.in), (builtin.out), (builtin.in), (builtin.out), (builtin.in), (builtin.out), (builtin.di), (builtin.uo)) is det), (builtin.in), (builtin.out), (builtin.in), (builtin.out), (builtin.in), (builtin.out), (builtin.di), (builtin.uo)), infinite, can_loop).
:- pragma termination_info(tree234.map_foldl3((pred((builtin.in), (builtin.in), (builtin.out), (builtin.in), (builtin.out), (builtin.in), (builtin.out), (builtin.in), (builtin.out)) is semidet), (builtin.in), (builtin.out), (builtin.in), (builtin.out), (builtin.in), (builtin.out), (builtin.in), (builtin.out)), infinite, can_loop).
:- pragma termination_info(tree234.map_foldl3((pred((builtin.in), (builtin.in), (builtin.out), (builtin.in), (builtin.out), (builtin.in), (builtin.out), (builtin.mdi), (builtin.muo)) is semidet), (builtin.in), (builtin.out), (builtin.in), (builtin.out), (builtin.in), (builtin.out), (builtin.mdi), (builtin.muo)), infinite, can_loop).
:- pragma termination_info(tree234.map_foldl3((pred((builtin.in), (builtin.in), (builtin.out), (builtin.in), (builtin.out), (builtin.in), (builtin.out), (builtin.di), (builtin.uo)) is semidet), (builtin.in), (builtin.out), (builtin.in), (builtin.out), (builtin.in), (builtin.out), (builtin.di), (builtin.uo)), infinite, can_loop).
:- pragma termination_info(tree234.map_values_foldl((pred((builtin.in), (builtin.out), (builtin.di), (builtin.uo)) is det), (builtin.in), (builtin.out), (builtin.di), (builtin.uo)), infinite, can_loop).
:- pragma termination_info(tree234.map_values_foldl((pred((builtin.in), (builtin.out), (builtin.in), (builtin.out)) is det), (builtin.in), (builtin.out), (builtin.in), (builtin.out)), infinite, can_loop).
:- pragma termination_info(tree234.map_values_foldl((pred((builtin.in), (builtin.out), (builtin.in), (builtin.out)) is semidet), (builtin.in), (builtin.out), (builtin.in), (builtin.out)), infinite, can_loop).
:- pragma termination_info(tree234.map_values_foldl2((pred((builtin.in), (builtin.out), (builtin.di), (builtin.uo), (builtin.di), (builtin.uo)) is det), (builtin.in), (builtin.out), (builtin.di), (builtin.uo), (builtin.di), (builtin.uo)), infinite, can_loop).
:- pragma termination_info(tree234.map_values_foldl2((pred((builtin.in), (builtin.out), (builtin.in), (builtin.out), (builtin.di), (builtin.uo)) is det), (builtin.in), (builtin.out), (builtin.in), (builtin.out), (builtin.di), (builtin.uo)), infinite, can_loop).
:- pragma termination_info(tree234.map_values_foldl2((pred((builtin.in), (builtin.out), (builtin.in), (builtin.out), (builtin.in), (builtin.out)) is det), (builtin.in), (builtin.out), (builtin.in), (builtin.out), (builtin.in), (builtin.out)), infinite, can_loop).
:- pragma termination_info(tree234.map_values_foldl2((pred((builtin.in), (builtin.out), (builtin.in), (builtin.out), (builtin.in), (builtin.out)) is semidet), (builtin.in), (builtin.out), (builtin.in), (builtin.out), (builtin.in), (builtin.out)), infinite, can_loop).
:- pragma termination_info(tree234.map_values_foldl3((pred((builtin.in), (builtin.out), (builtin.di), (builtin.uo), (builtin.di), (builtin.uo), (builtin.di), (builtin.uo)) is det), (builtin.in), (builtin.out), (builtin.di), (builtin.uo), (builtin.di), (builtin.uo), (builtin.di), (builtin.uo)), infinite, can_loop).
:- pragma termination_info(tree234.map_values_foldl3((pred((builtin.in), (builtin.out), (builtin.in), (builtin.out), (builtin.di), (builtin.uo), (builtin.di), (builtin.uo)) is det), (builtin.in), (builtin.out), (builtin.in), (builtin.out), (builtin.di), (builtin.uo), (builtin.di), (builtin.uo)), infinite, can_loop).
:- pragma termination_info(tree234.map_values_foldl3((pred((builtin.in), (builtin.out), (builtin.in), (builtin.out), (builtin.in), (builtin.out), (builtin.di), (builtin.uo)) is det), (builtin.in), (builtin.out), (builtin.in), (builtin.out), (builtin.in), (builtin.out), (builtin.di), (builtin.uo)), infinite, can_loop).
:- pragma termination_info(tree234.map_values_foldl3((pred((builtin.in), (builtin.out), (builtin.in), (builtin.out), (builtin.in), (builtin.out), (builtin.in), (builtin.out)) is det), (builtin.in), (builtin.out), (builtin.in), (builtin.out), (builtin.in), (builtin.out), (builtin.in), (builtin.out)), infinite, can_loop).
:- pragma termination_info(tree234.map_values_foldl3((pred((builtin.in), (builtin.out), (builtin.in), (builtin.out), (builtin.in), (builtin.out), (builtin.in), (builtin.out)) is semidet), (builtin.in), (builtin.out), (builtin.in), (builtin.out), (builtin.in), (builtin.out), (builtin.in), (builtin.out)), infinite, can_loop).
:- pragma termination_info(tree234.tree234_to_doc((builtin.in)) = (builtin.out), infinite, can_loop).
:- pragma termination_info(tree234.find_min_size_based_on_depth((builtin.in), (builtin.out)), finite(0, [no, no, no, no]), can_loop).
:- pragma termination_info(tree234.well_formed((builtin.in), (builtin.out)), infinite, can_loop).
:- pragma termination_info(tree234.delete_2((builtin.in), (builtin.in), (builtin.out), (builtin.out)), infinite, can_loop).
:- pragma termination_info(tree234.remove_2((builtin.in), (builtin.in), (builtin.out), (builtin.out), (builtin.out)), infinite, can_loop).
:- pragma termination_info(tree234.remove_smallest_2((builtin.in), (builtin.out), (builtin.out), (builtin.out), (builtin.out)), infinite, can_loop).
:- pragma termination_info(tree234.keys_acc((builtin.in), (builtin.in), (builtin.out)), finite(0, [no, no, yes, yes, no]), cannot_loop).
:- pragma termination_info(tree234.values_acc((builtin.in), (builtin.in), (builtin.out)), finite(0, [no, no, yes, yes, no]), cannot_loop).
:- pragma termination_info(tree234.keys_and_values_acc((builtin.in), (builtin.in), (builtin.out), (builtin.in), (builtin.out)), infinite, can_loop).
:- pragma termination_info(tree234.tree234_to_assoc_list_acc((builtin.in), (builtin.in), (builtin.out)), infinite, can_loop).
:- pragma termination_info(tree234.assoc_list_to_tree234_acc((builtin.in), (builtin.in), (builtin.out)), infinite, can_loop).
:- pragma termination_info(tree234.min_size_based_on_depth((builtin.in), (builtin.out)), finite(0, [no, no]), can_loop).
:- pragma termination_info(tree234.find_depth((builtin.in), (builtin.out)), finite(0, [no, no, no, no]), cannot_loop).
