(* This example resulted in a code blow-up.  The match compiler generates
   thousands of cases.  Now fixed by using a naive pattern-by-pattern
   match. *)

structure Nbe =
struct

  datatype Univ =
      Const of string * Univ list
    | Free of string * Univ list
    | DFree of string
    | BVar of int * Univ list
    | Abs of (int * (Univ list -> Univ)) * Univ list;

end;

fun c_RedBlackTree_balance_const [(Nbe.Const ("RedBlackTree.tr.const", [v_vd, v_vc, v_vb, v_va, (Nbe.Const ("RedBlackTree.b.const", []))])), v_t, v_s, (Nbe.Const ("RedBlackTree.tr.const", [(Nbe.Const ("RedBlackTree.tr.const", [v_vp, v_vo, v_vn, v_vi, (Nbe.Const ("RedBlackTree.b.const", []))])), v_vg, v_vf, (Nbe.Const ("RedBlackTree.tr.const", [v_vm, v_vl, v_vk, v_vj, (Nbe.Const ("RedBlackTree.b.const", []))])), v_v]))] = (Nbe.Const ("RedBlackTree.tr.const", [(Nbe.Const ("RedBlackTree.tr.const", [v_vd, v_vc, v_vb, v_va, (Nbe.Const ("RedBlackTree.b.const", []))])), v_t, v_s, (Nbe.Const ("RedBlackTree.tr.const", [(Nbe.Const ("RedBlackTree.tr.const", [v_vp, v_vo, v_vn, v_vi, (Nbe.Const ("RedBlackTree.b.const", []))])), v_vg, v_vf, (Nbe.Const ("RedBlackTree.tr.const", [v_vm, v_vl, v_vk, v_vj, (Nbe.Const ("RedBlackTree.b.const", []))])), v_v])), (Nbe.Const ("RedBlackTree.b.const", []))]))
  | c_RedBlackTree_balance_const [(Nbe.Const ("RedBlackTree.tr.const", [v_vd, v_vc, v_vb, v_va, (Nbe.Const ("RedBlackTree.b.const", []))])), v_t, v_s, (Nbe.Const ("RedBlackTree.tr.const", [(Nbe.Const ("RedBlackTree.e.const", [])), v_vg, v_vf, (Nbe.Const ("RedBlackTree.tr.const", [v_vm, v_vl, v_vk, v_vj, (Nbe.Const ("RedBlackTree.b.const", []))])), v_v]))] = (Nbe.Const ("RedBlackTree.tr.const", [(Nbe.Const ("RedBlackTree.tr.const", [v_vd, v_vc, v_vb, v_va, (Nbe.Const ("RedBlackTree.b.const", []))])), v_t, v_s, (Nbe.Const ("RedBlackTree.tr.const", [(Nbe.Const ("RedBlackTree.e.const", [])), v_vg, v_vf, (Nbe.Const ("RedBlackTree.tr.const", [v_vm, v_vl, v_vk, v_vj, (Nbe.Const ("RedBlackTree.b.const", []))])), v_v])), (Nbe.Const ("RedBlackTree.b.const", []))]))
  | c_RedBlackTree_balance_const [(Nbe.Const ("RedBlackTree.tr.const", [v_vd, v_vc, v_vb, v_va, (Nbe.Const ("RedBlackTree.b.const", []))])), v_t, v_s, (Nbe.Const ("RedBlackTree.tr.const", [v_vh, v_vg, v_vf, (Nbe.Const ("RedBlackTree.tr.const", [v_vm, v_vl, v_vk, v_vj, (Nbe.Const ("RedBlackTree.b.const", []))])), (Nbe.Const ("RedBlackTree.b.const", []))]))] = (Nbe.Const ("RedBlackTree.tr.const", [(Nbe.Const ("RedBlackTree.tr.const", [v_vd, v_vc, v_vb, v_va, (Nbe.Const ("RedBlackTree.b.const", []))])), v_t, v_s, (Nbe.Const ("RedBlackTree.tr.const", [v_vh, v_vg, v_vf, (Nbe.Const ("RedBlackTree.tr.const", [v_vm, v_vl, v_vk, v_vj, (Nbe.Const ("RedBlackTree.b.const", []))])), (Nbe.Const ("RedBlackTree.b.const", []))])), (Nbe.Const ("RedBlackTree.b.const", []))]))
  | c_RedBlackTree_balance_const [(Nbe.Const ("RedBlackTree.tr.const", [v_vd, v_vc, v_vb, v_va, (Nbe.Const ("RedBlackTree.b.const", []))])), v_t, v_s, (Nbe.Const ("RedBlackTree.tr.const", [(Nbe.Const ("RedBlackTree.tr.const", [v_vl, v_vk, v_vj, v_vi, (Nbe.Const ("RedBlackTree.b.const", []))])), v_vg, v_vf, (Nbe.Const ("RedBlackTree.e.const", [])), v_v]))] = (Nbe.Const ("RedBlackTree.tr.const", [(Nbe.Const ("RedBlackTree.tr.const", [v_vd, v_vc, v_vb, v_va, (Nbe.Const ("RedBlackTree.b.const", []))])), v_t, v_s, (Nbe.Const ("RedBlackTree.tr.const", [(Nbe.Const ("RedBlackTree.tr.const", [v_vl, v_vk, v_vj, v_vi, (Nbe.Const ("RedBlackTree.b.const", []))])), v_vg, v_vf, (Nbe.Const ("RedBlackTree.e.const", [])), v_v])), (Nbe.Const ("RedBlackTree.b.const", []))]))
  | c_RedBlackTree_balance_const [(Nbe.Const ("RedBlackTree.tr.const", [v_vd, v_vc, v_vb, v_va, (Nbe.Const ("RedBlackTree.b.const", []))])), v_t, v_s, (Nbe.Const ("RedBlackTree.tr.const", [(Nbe.Const ("RedBlackTree.e.const", [])), v_vg, v_vf, (Nbe.Const ("RedBlackTree.e.const", [])), v_v]))] = (Nbe.Const ("RedBlackTree.tr.const", [(Nbe.Const ("RedBlackTree.tr.const", [v_vd, v_vc, v_vb, v_va, (Nbe.Const ("RedBlackTree.b.const", []))])), v_t, v_s, (Nbe.Const ("RedBlackTree.tr.const", [(Nbe.Const ("RedBlackTree.e.const", [])), v_vg, v_vf, (Nbe.Const ("RedBlackTree.e.const", [])), v_v])), (Nbe.Const ("RedBlackTree.b.const", []))]))
  | c_RedBlackTree_balance_const [(Nbe.Const ("RedBlackTree.tr.const", [v_vd, v_vc, v_vb, v_va, (Nbe.Const ("RedBlackTree.b.const", []))])), v_t, v_s, (Nbe.Const ("RedBlackTree.tr.const", [v_vh, v_vg, v_vf, (Nbe.Const ("RedBlackTree.e.const", [])), (Nbe.Const ("RedBlackTree.b.const", []))]))] = (Nbe.Const ("RedBlackTree.tr.const", [(Nbe.Const ("RedBlackTree.tr.const", [v_vd, v_vc, v_vb, v_va, (Nbe.Const ("RedBlackTree.b.const", []))])), v_t, v_s, (Nbe.Const ("RedBlackTree.tr.const", [v_vh, v_vg, v_vf, (Nbe.Const ("RedBlackTree.e.const", [])), (Nbe.Const ("RedBlackTree.b.const", []))])), (Nbe.Const ("RedBlackTree.b.const", []))]))
  | c_RedBlackTree_balance_const [(Nbe.Const ("RedBlackTree.tr.const", [v_vd, v_vc, v_vb, v_va, (Nbe.Const ("RedBlackTree.b.const", []))])), v_t, v_s, (Nbe.Const ("RedBlackTree.tr.const", [v_vh, v_vg, v_vf, v_ve, (Nbe.Const ("RedBlackTree.b.const", []))]))] = (Nbe.Const ("RedBlackTree.tr.const", [(Nbe.Const ("RedBlackTree.tr.const", [v_vd, v_vc, v_vb, v_va, (Nbe.Const ("RedBlackTree.b.const", []))])), v_t, v_s, (Nbe.Const ("RedBlackTree.tr.const", [v_vh, v_vg, v_vf, v_ve, (Nbe.Const ("RedBlackTree.b.const", []))])), (Nbe.Const ("RedBlackTree.b.const", []))]))
  | c_RedBlackTree_balance_const [(Nbe.Const ("RedBlackTree.tr.const", [v_vd, v_vc, v_vb, v_va, (Nbe.Const ("RedBlackTree.b.const", []))])), v_t, v_s, (Nbe.Const ("RedBlackTree.e.const", []))] = (Nbe.Const ("RedBlackTree.tr.const", [(Nbe.Const ("RedBlackTree.tr.const", [v_vd, v_vc, v_vb, v_va, (Nbe.Const ("RedBlackTree.b.const", []))])), v_t, v_s, (Nbe.Const ("RedBlackTree.e.const", [])), (Nbe.Const ("RedBlackTree.b.const", []))]))
  | c_RedBlackTree_balance_const [(Nbe.Const ("RedBlackTree.e.const", [])), v_t, v_s, (Nbe.Const ("RedBlackTree.tr.const", [(Nbe.Const ("RedBlackTree.tr.const", [v_vl, v_vk, v_vj, v_ve, (Nbe.Const ("RedBlackTree.b.const", []))])), v_vc, v_vb, (Nbe.Const ("RedBlackTree.tr.const", [v_vi, v_vh, v_vg, v_vf, (Nbe.Const ("RedBlackTree.b.const", []))])), v_v]))] = (Nbe.Const ("RedBlackTree.tr.const", [(Nbe.Const ("RedBlackTree.e.const", [])), v_t, v_s, (Nbe.Const ("RedBlackTree.tr.const", [(Nbe.Const ("RedBlackTree.tr.const", [v_vl, v_vk, v_vj, v_ve, (Nbe.Const ("RedBlackTree.b.const", []))])), v_vc, v_vb, (Nbe.Const ("RedBlackTree.tr.const", [v_vi, v_vh, v_vg, v_vf, (Nbe.Const ("RedBlackTree.b.const", []))])), v_v])), (Nbe.Const ("RedBlackTree.b.const", []))]))
  | c_RedBlackTree_balance_const [(Nbe.Const ("RedBlackTree.e.const", [])), v_t, v_s, (Nbe.Const ("RedBlackTree.tr.const", [(Nbe.Const ("RedBlackTree.e.const", [])), v_vc, v_vb, (Nbe.Const ("RedBlackTree.tr.const", [v_vi, v_vh, v_vg, v_vf, (Nbe.Const ("RedBlackTree.b.const", []))])), v_v]))] = (Nbe.Const ("RedBlackTree.tr.const", [(Nbe.Const ("RedBlackTree.e.const", [])), v_t, v_s, (Nbe.Const ("RedBlackTree.tr.const", [(Nbe.Const ("RedBlackTree.e.const", [])), v_vc, v_vb, (Nbe.Const ("RedBlackTree.tr.const", [v_vi, v_vh, v_vg, v_vf, (Nbe.Const ("RedBlackTree.b.const", []))])), v_v])), (Nbe.Const ("RedBlackTree.b.const", []))]))
  | c_RedBlackTree_balance_const [(Nbe.Const ("RedBlackTree.e.const", [])), v_t, v_s, (Nbe.Const ("RedBlackTree.tr.const", [v_vd, v_vc, v_vb, (Nbe.Const ("RedBlackTree.tr.const", [v_vi, v_vh, v_vg, v_vf, (Nbe.Const ("RedBlackTree.b.const", []))])), (Nbe.Const ("RedBlackTree.b.const", []))]))] = (Nbe.Const ("RedBlackTree.tr.const", [(Nbe.Const ("RedBlackTree.e.const", [])), v_t, v_s, (Nbe.Const ("RedBlackTree.tr.const", [v_vd, v_vc, v_vb, (Nbe.Const ("RedBlackTree.tr.const", [v_vi, v_vh, v_vg, v_vf, (Nbe.Const ("RedBlackTree.b.const", []))])), (Nbe.Const ("RedBlackTree.b.const", []))])), (Nbe.Const ("RedBlackTree.b.const", []))]))
  | c_RedBlackTree_balance_const [(Nbe.Const ("RedBlackTree.e.const", [])), v_t, v_s, (Nbe.Const ("RedBlackTree.tr.const", [(Nbe.Const ("RedBlackTree.tr.const", [v_vh, v_vg, v_vf, v_ve, (Nbe.Const ("RedBlackTree.b.const", []))])), v_vc, v_vb, (Nbe.Const ("RedBlackTree.e.const", [])), v_v]))] = (Nbe.Const ("RedBlackTree.tr.const", [(Nbe.Const ("RedBlackTree.e.const", [])), v_t, v_s, (Nbe.Const ("RedBlackTree.tr.const", [(Nbe.Const ("RedBlackTree.tr.const", [v_vh, v_vg, v_vf, v_ve, (Nbe.Const ("RedBlackTree.b.const", []))])), v_vc, v_vb, (Nbe.Const ("RedBlackTree.e.const", [])), v_v])), (Nbe.Const ("RedBlackTree.b.const", []))]))
  | c_RedBlackTree_balance_const [(Nbe.Const ("RedBlackTree.e.const", [])), v_t, v_s, (Nbe.Const ("RedBlackTree.tr.const", [(Nbe.Const ("RedBlackTree.e.const", [])), v_vc, v_vb, (Nbe.Const ("RedBlackTree.e.const", [])), v_v]))] = (Nbe.Const ("RedBlackTree.tr.const", [(Nbe.Const ("RedBlackTree.e.const", [])), v_t, v_s, (Nbe.Const ("RedBlackTree.tr.const", [(Nbe.Const ("RedBlackTree.e.const", [])), v_vc, v_vb, (Nbe.Const ("RedBlackTree.e.const", [])), v_v])), (Nbe.Const ("RedBlackTree.b.const", []))]))
  | c_RedBlackTree_balance_const [(Nbe.Const ("RedBlackTree.e.const", [])), v_t, v_s, (Nbe.Const ("RedBlackTree.tr.const", [v_vd, v_vc, v_vb, (Nbe.Const ("RedBlackTree.e.const", [])), (Nbe.Const ("RedBlackTree.b.const", []))]))] = (Nbe.Const ("RedBlackTree.tr.const", [(Nbe.Const ("RedBlackTree.e.const", [])), v_t, v_s, (Nbe.Const ("RedBlackTree.tr.const", [v_vd, v_vc, v_vb, (Nbe.Const ("RedBlackTree.e.const", [])), (Nbe.Const ("RedBlackTree.b.const", []))])), (Nbe.Const ("RedBlackTree.b.const", []))]))
  | c_RedBlackTree_balance_const [(Nbe.Const ("RedBlackTree.e.const", [])), v_t, v_s, (Nbe.Const ("RedBlackTree.tr.const", [v_vd, v_vc, v_vb, v_va, (Nbe.Const ("RedBlackTree.b.const", []))]))] = (Nbe.Const ("RedBlackTree.tr.const", [(Nbe.Const ("RedBlackTree.e.const", [])), v_t, v_s, (Nbe.Const ("RedBlackTree.tr.const", [v_vd, v_vc, v_vb, v_va, (Nbe.Const ("RedBlackTree.b.const", []))])), (Nbe.Const ("RedBlackTree.b.const", []))]))
  | c_RedBlackTree_balance_const [(Nbe.Const ("RedBlackTree.e.const", [])), v_t, v_s, (Nbe.Const ("RedBlackTree.e.const", []))] = (Nbe.Const ("RedBlackTree.tr.const", [(Nbe.Const ("RedBlackTree.e.const", [])), v_t, v_s, (Nbe.Const ("RedBlackTree.e.const", [])), (Nbe.Const ("RedBlackTree.b.const", []))]))
  | c_RedBlackTree_balance_const [(Nbe.Const ("RedBlackTree.tr.const", [(Nbe.Const ("RedBlackTree.tr.const", [v_vm, v_vl, v_vk, v_vj, (Nbe.Const ("RedBlackTree.b.const", []))])), v_vg, v_vf, (Nbe.Const ("RedBlackTree.tr.const", [v_vp, v_vo, v_vn, v_vi, (Nbe.Const ("RedBlackTree.b.const", []))])), v_v])), v_t, v_s, (Nbe.Const ("RedBlackTree.tr.const", [v_vd, v_vc, v_vb, v_va, (Nbe.Const ("RedBlackTree.b.const", []))]))] = (Nbe.Const ("RedBlackTree.tr.const", [(Nbe.Const ("RedBlackTree.tr.const", [(Nbe.Const ("RedBlackTree.tr.const", [v_vm, v_vl, v_vk, v_vj, (Nbe.Const ("RedBlackTree.b.const", []))])), v_vg, v_vf, (Nbe.Const ("RedBlackTree.tr.const", [v_vp, v_vo, v_vn, v_vi, (Nbe.Const ("RedBlackTree.b.const", []))])), v_v])), v_t, v_s, (Nbe.Const ("RedBlackTree.tr.const", [v_vd, v_vc, v_vb, v_va, (Nbe.Const ("RedBlackTree.b.const", []))])), (Nbe.Const ("RedBlackTree.b.const", []))]))
  | c_RedBlackTree_balance_const [(Nbe.Const ("RedBlackTree.tr.const", [(Nbe.Const ("RedBlackTree.tr.const", [v_vm, v_vl, v_vk, v_vj, (Nbe.Const ("RedBlackTree.b.const", []))])), v_vg, v_vf, (Nbe.Const ("RedBlackTree.e.const", [])), v_v])), v_t, v_s, (Nbe.Const ("RedBlackTree.tr.const", [v_vd, v_vc, v_vb, v_va, (Nbe.Const ("RedBlackTree.b.const", []))]))] = (Nbe.Const ("RedBlackTree.tr.const", [(Nbe.Const ("RedBlackTree.tr.const", [(Nbe.Const ("RedBlackTree.tr.const", [v_vm, v_vl, v_vk, v_vj, (Nbe.Const ("RedBlackTree.b.const", []))])), v_vg, v_vf, (Nbe.Const ("RedBlackTree.e.const", [])), v_v])), v_t, v_s, (Nbe.Const ("RedBlackTree.tr.const", [v_vd, v_vc, v_vb, v_va, (Nbe.Const ("RedBlackTree.b.const", []))])), (Nbe.Const ("RedBlackTree.b.const", []))]))
  | c_RedBlackTree_balance_const [(Nbe.Const ("RedBlackTree.tr.const", [(Nbe.Const ("RedBlackTree.e.const", [])), v_vg, v_vf, (Nbe.Const ("RedBlackTree.tr.const", [v_vl, v_vk, v_vj, v_vi, (Nbe.Const ("RedBlackTree.b.const", []))])), v_v])), v_t, v_s, (Nbe.Const ("RedBlackTree.tr.const", [v_vd, v_vc, v_vb, v_va, (Nbe.Const ("RedBlackTree.b.const", []))]))] = (Nbe.Const ("RedBlackTree.tr.const", [(Nbe.Const ("RedBlackTree.tr.const", [(Nbe.Const ("RedBlackTree.e.const", [])), v_vg, v_vf, (Nbe.Const ("RedBlackTree.tr.const", [v_vl, v_vk, v_vj, v_vi, (Nbe.Const ("RedBlackTree.b.const", []))])), v_v])), v_t, v_s, (Nbe.Const ("RedBlackTree.tr.const", [v_vd, v_vc, v_vb, v_va, (Nbe.Const ("RedBlackTree.b.const", []))])), (Nbe.Const ("RedBlackTree.b.const", []))]))
  | c_RedBlackTree_balance_const [(Nbe.Const ("RedBlackTree.tr.const", [(Nbe.Const ("RedBlackTree.e.const", [])), v_vg, v_vf, (Nbe.Const ("RedBlackTree.e.const", [])), v_v])), v_t, v_s, (Nbe.Const ("RedBlackTree.tr.const", [v_vd, v_vc, v_vb, v_va, (Nbe.Const ("RedBlackTree.b.const", []))]))] = (Nbe.Const ("RedBlackTree.tr.const", [(Nbe.Const ("RedBlackTree.tr.const", [(Nbe.Const ("RedBlackTree.e.const", [])), v_vg, v_vf, (Nbe.Const ("RedBlackTree.e.const", [])), v_v])), v_t, v_s, (Nbe.Const ("RedBlackTree.tr.const", [v_vd, v_vc, v_vb, v_va, (Nbe.Const ("RedBlackTree.b.const", []))])), (Nbe.Const ("RedBlackTree.b.const", []))]))
  | c_RedBlackTree_balance_const [(Nbe.Const ("RedBlackTree.tr.const", [(Nbe.Const ("RedBlackTree.tr.const", [v_vi, v_vh, v_vg, v_vf, (Nbe.Const ("RedBlackTree.b.const", []))])), v_vc, v_vb, (Nbe.Const ("RedBlackTree.tr.const", [v_vl, v_vk, v_vj, v_ve, (Nbe.Const ("RedBlackTree.b.const", []))])), v_v])), v_t, v_s, (Nbe.Const ("RedBlackTree.e.const", []))] = (Nbe.Const ("RedBlackTree.tr.const", [(Nbe.Const ("RedBlackTree.tr.const", [(Nbe.Const ("RedBlackTree.tr.const", [v_vi, v_vh, v_vg, v_vf, (Nbe.Const ("RedBlackTree.b.const", []))])), v_vc, v_vb, (Nbe.Const ("RedBlackTree.tr.const", [v_vl, v_vk, v_vj, v_ve, (Nbe.Const ("RedBlackTree.b.const", []))])), v_v])), v_t, v_s, (Nbe.Const ("RedBlackTree.e.const", [])), (Nbe.Const ("RedBlackTree.b.const", []))]))
  | c_RedBlackTree_balance_const [(Nbe.Const ("RedBlackTree.tr.const", [(Nbe.Const ("RedBlackTree.tr.const", [v_vi, v_vh, v_vg, v_vf, (Nbe.Const ("RedBlackTree.b.const", []))])), v_vc, v_vb, (Nbe.Const ("RedBlackTree.e.const", [])), v_v])), v_t, v_s, (Nbe.Const ("RedBlackTree.e.const", []))] = (Nbe.Const ("RedBlackTree.tr.const", [(Nbe.Const ("RedBlackTree.tr.const", [(Nbe.Const ("RedBlackTree.tr.const", [v_vi, v_vh, v_vg, v_vf, (Nbe.Const ("RedBlackTree.b.const", []))])), v_vc, v_vb, (Nbe.Const ("RedBlackTree.e.const", [])), v_v])), v_t, v_s, (Nbe.Const ("RedBlackTree.e.const", [])), (Nbe.Const ("RedBlackTree.b.const", []))]))
  | c_RedBlackTree_balance_const [(Nbe.Const ("RedBlackTree.tr.const", [(Nbe.Const ("RedBlackTree.e.const", [])), v_vc, v_vb, (Nbe.Const ("RedBlackTree.tr.const", [v_vh, v_vg, v_vf, v_ve, (Nbe.Const ("RedBlackTree.b.const", []))])), v_v])), v_t, v_s, (Nbe.Const ("RedBlackTree.e.const", []))] = (Nbe.Const ("RedBlackTree.tr.const", [(Nbe.Const ("RedBlackTree.tr.const", [(Nbe.Const ("RedBlackTree.e.const", [])), v_vc, v_vb, (Nbe.Const ("RedBlackTree.tr.const", [v_vh, v_vg, v_vf, v_ve, (Nbe.Const ("RedBlackTree.b.const", []))])), v_v])), v_t, v_s, (Nbe.Const ("RedBlackTree.e.const", [])), (Nbe.Const ("RedBlackTree.b.const", []))]))
  | c_RedBlackTree_balance_const [(Nbe.Const ("RedBlackTree.tr.const", [(Nbe.Const ("RedBlackTree.e.const", [])), v_vc, v_vb, (Nbe.Const ("RedBlackTree.e.const", [])), v_v])), v_t, v_s, (Nbe.Const ("RedBlackTree.e.const", []))] = (Nbe.Const ("RedBlackTree.tr.const", [(Nbe.Const ("RedBlackTree.tr.const", [(Nbe.Const ("RedBlackTree.e.const", [])), v_vc, v_vb, (Nbe.Const ("RedBlackTree.e.const", [])), v_v])), v_t, v_s, (Nbe.Const ("RedBlackTree.e.const", [])), (Nbe.Const ("RedBlackTree.b.const", []))]))
  | c_RedBlackTree_balance_const [(Nbe.Const ("RedBlackTree.tr.const", [(Nbe.Const ("RedBlackTree.tr.const", [v_vh, v_vg, v_vf, v_ve, (Nbe.Const ("RedBlackTree.b.const", []))])), v_z, v_y, (Nbe.Const ("RedBlackTree.tr.const", [v_c, v_t, v_s, v_b, (Nbe.Const ("RedBlackTree.r.const", []))])), (Nbe.Const ("RedBlackTree.r.const", []))])), v_x, v_w, (Nbe.Const ("RedBlackTree.tr.const", [v_vd, v_vc, v_vb, v_va, (Nbe.Const ("RedBlackTree.b.const", []))]))] = (Nbe.Const ("RedBlackTree.tr.const", [(Nbe.Const ("RedBlackTree.tr.const", [(Nbe.Const ("RedBlackTree.tr.const", [v_vh, v_vg, v_vf, v_ve, (Nbe.Const ("RedBlackTree.b.const", []))])), v_z, v_y, v_c, (Nbe.Const ("RedBlackTree.b.const", []))])), v_t, v_s, (Nbe.Const ("RedBlackTree.tr.const", [v_b, v_x, v_w, (Nbe.Const ("RedBlackTree.tr.const", [v_vd, v_vc, v_vb, v_va, (Nbe.Const ("RedBlackTree.b.const", []))])), (Nbe.Const ("RedBlackTree.b.const", []))])), (Nbe.Const ("RedBlackTree.r.const", []))]))
  | c_RedBlackTree_balance_const [(Nbe.Const ("RedBlackTree.tr.const", [(Nbe.Const ("RedBlackTree.e.const", [])), v_z, v_y, (Nbe.Const ("RedBlackTree.tr.const", [v_c, v_t, v_s, v_b, (Nbe.Const ("RedBlackTree.r.const", []))])), (Nbe.Const ("RedBlackTree.r.const", []))])), v_x, v_w, (Nbe.Const ("RedBlackTree.tr.const", [v_vd, v_vc, v_vb, v_va, (Nbe.Const ("RedBlackTree.b.const", []))]))] = (Nbe.Const ("RedBlackTree.tr.const", [(Nbe.Const ("RedBlackTree.tr.const", [(Nbe.Const ("RedBlackTree.e.const", [])), v_z, v_y, v_c, (Nbe.Const ("RedBlackTree.b.const", []))])), v_t, v_s, (Nbe.Const ("RedBlackTree.tr.const", [v_b, v_x, v_w, (Nbe.Const ("RedBlackTree.tr.const", [v_vd, v_vc, v_vb, v_va, (Nbe.Const ("RedBlackTree.b.const", []))])), (Nbe.Const ("RedBlackTree.b.const", []))])), (Nbe.Const ("RedBlackTree.r.const", []))]))
  | c_RedBlackTree_balance_const [(Nbe.Const ("RedBlackTree.tr.const", [(Nbe.Const ("RedBlackTree.tr.const", [v_vd, v_vc, v_vb, v_va, (Nbe.Const ("RedBlackTree.b.const", []))])), v_z, v_y, (Nbe.Const ("RedBlackTree.tr.const", [v_c, v_t, v_s, v_b, (Nbe.Const ("RedBlackTree.r.const", []))])), (Nbe.Const ("RedBlackTree.r.const", []))])), v_x, v_w, (Nbe.Const ("RedBlackTree.e.const", []))] = (Nbe.Const ("RedBlackTree.tr.const", [(Nbe.Const ("RedBlackTree.tr.const", [(Nbe.Const ("RedBlackTree.tr.const", [v_vd, v_vc, v_vb, v_va, (Nbe.Const ("RedBlackTree.b.const", []))])), v_z, v_y, v_c, (Nbe.Const ("RedBlackTree.b.const", []))])), v_t, v_s, (Nbe.Const ("RedBlackTree.tr.const", [v_b, v_x, v_w, (Nbe.Const ("RedBlackTree.e.const", [])), (Nbe.Const ("RedBlackTree.b.const", []))])), (Nbe.Const ("RedBlackTree.r.const", []))]))
  | c_RedBlackTree_balance_const [(Nbe.Const ("RedBlackTree.tr.const", [(Nbe.Const ("RedBlackTree.e.const", [])), v_z, v_y, (Nbe.Const ("RedBlackTree.tr.const", [v_c, v_t, v_s, v_b, (Nbe.Const ("RedBlackTree.r.const", []))])), (Nbe.Const ("RedBlackTree.r.const", []))])), v_x, v_w, (Nbe.Const ("RedBlackTree.e.const", []))] = (Nbe.Const ("RedBlackTree.tr.const", [(Nbe.Const ("RedBlackTree.tr.const", [(Nbe.Const ("RedBlackTree.e.const", [])), v_z, v_y, v_c, (Nbe.Const ("RedBlackTree.b.const", []))])), v_t, v_s, (Nbe.Const ("RedBlackTree.tr.const", [v_b, v_x, v_w, (Nbe.Const ("RedBlackTree.e.const", [])), (Nbe.Const ("RedBlackTree.b.const", []))])), (Nbe.Const ("RedBlackTree.r.const", []))]))
  | c_RedBlackTree_balance_const [(Nbe.Const ("RedBlackTree.tr.const", [(Nbe.Const ("RedBlackTree.tr.const", [v_d, v_z, v_y, v_c, (Nbe.Const ("RedBlackTree.r.const", []))])), v_t, v_s, v_b, (Nbe.Const ("RedBlackTree.r.const", []))])), v_x, v_w, (Nbe.Const ("RedBlackTree.tr.const", [v_vd, v_vc, v_vb, v_va, (Nbe.Const ("RedBlackTree.b.const", []))]))] = (Nbe.Const ("RedBlackTree.tr.const", [(Nbe.Const ("RedBlackTree.tr.const", [v_d, v_z, v_y, v_c, (Nbe.Const ("RedBlackTree.b.const", []))])), v_t, v_s, (Nbe.Const ("RedBlackTree.tr.const", [v_b, v_x, v_w, (Nbe.Const ("RedBlackTree.tr.const", [v_vd, v_vc, v_vb, v_va, (Nbe.Const ("RedBlackTree.b.const", []))])), (Nbe.Const ("RedBlackTree.b.const", []))])), (Nbe.Const ("RedBlackTree.r.const", []))]))
  | c_RedBlackTree_balance_const [(Nbe.Const ("RedBlackTree.tr.const", [(Nbe.Const ("RedBlackTree.tr.const", [v_d, v_z, v_y, v_c, (Nbe.Const ("RedBlackTree.r.const", []))])), v_t, v_s, v_b, (Nbe.Const ("RedBlackTree.r.const", []))])), v_x, v_w, (Nbe.Const ("RedBlackTree.e.const", []))] = (Nbe.Const ("RedBlackTree.tr.const", [(Nbe.Const ("RedBlackTree.tr.const", [v_d, v_z, v_y, v_c, (Nbe.Const ("RedBlackTree.b.const", []))])), v_t, v_s, (Nbe.Const ("RedBlackTree.tr.const", [v_b, v_x, v_w, (Nbe.Const ("RedBlackTree.e.const", [])), (Nbe.Const ("RedBlackTree.b.const", []))])), (Nbe.Const ("RedBlackTree.r.const", []))]))
  | c_RedBlackTree_balance_const [(Nbe.Const ("RedBlackTree.tr.const", [v_vd, v_vc, v_vb, v_va, (Nbe.Const ("RedBlackTree.b.const", []))])), v_z, v_y, (Nbe.Const ("RedBlackTree.tr.const", [(Nbe.Const ("RedBlackTree.tr.const", [v_c, v_t, v_s, v_b, (Nbe.Const ("RedBlackTree.r.const", []))])), v_x, v_w, (Nbe.Const ("RedBlackTree.tr.const", [v_vh, v_vg, v_vf, v_ve, (Nbe.Const ("RedBlackTree.b.const", []))])), (Nbe.Const ("RedBlackTree.r.const", []))]))] = (Nbe.Const ("RedBlackTree.tr.const", [(Nbe.Const ("RedBlackTree.tr.const", [(Nbe.Const ("RedBlackTree.tr.const", [v_vd, v_vc, v_vb, v_va, (Nbe.Const ("RedBlackTree.b.const", []))])), v_z, v_y, v_c, (Nbe.Const ("RedBlackTree.b.const", []))])), v_t, v_s, (Nbe.Const ("RedBlackTree.tr.const", [v_b, v_x, v_w, (Nbe.Const ("RedBlackTree.tr.const", [v_vh, v_vg, v_vf, v_ve, (Nbe.Const ("RedBlackTree.b.const", []))])), (Nbe.Const ("RedBlackTree.b.const", []))])), (Nbe.Const ("RedBlackTree.r.const", []))]))
  | c_RedBlackTree_balance_const [(Nbe.Const ("RedBlackTree.tr.const", [v_vd, v_vc, v_vb, v_va, (Nbe.Const ("RedBlackTree.b.const", []))])), v_z, v_y, (Nbe.Const ("RedBlackTree.tr.const", [(Nbe.Const ("RedBlackTree.tr.const", [v_c, v_t, v_s, v_b, (Nbe.Const ("RedBlackTree.r.const", []))])), v_x, v_w, (Nbe.Const ("RedBlackTree.e.const", [])), (Nbe.Const ("RedBlackTree.r.const", []))]))] = (Nbe.Const ("RedBlackTree.tr.const", [(Nbe.Const ("RedBlackTree.tr.const", [(Nbe.Const ("RedBlackTree.tr.const", [v_vd, v_vc, v_vb, v_va, (Nbe.Const ("RedBlackTree.b.const", []))])), v_z, v_y, v_c, (Nbe.Const ("RedBlackTree.b.const", []))])), v_t, v_s, (Nbe.Const ("RedBlackTree.tr.const", [v_b, v_x, v_w, (Nbe.Const ("RedBlackTree.e.const", [])), (Nbe.Const ("RedBlackTree.b.const", []))])), (Nbe.Const ("RedBlackTree.r.const", []))]))
  | c_RedBlackTree_balance_const [(Nbe.Const ("RedBlackTree.e.const", [])), v_z, v_y, (Nbe.Const ("RedBlackTree.tr.const", [(Nbe.Const ("RedBlackTree.tr.const", [v_c, v_t, v_s, v_b, (Nbe.Const ("RedBlackTree.r.const", []))])), v_x, v_w, (Nbe.Const ("RedBlackTree.tr.const", [v_vd, v_vc, v_vb, v_va, (Nbe.Const ("RedBlackTree.b.const", []))])), (Nbe.Const ("RedBlackTree.r.const", []))]))] = (Nbe.Const ("RedBlackTree.tr.const", [(Nbe.Const ("RedBlackTree.tr.const", [(Nbe.Const ("RedBlackTree.e.const", [])), v_z, v_y, v_c, (Nbe.Const ("RedBlackTree.b.const", []))])), v_t, v_s, (Nbe.Const ("RedBlackTree.tr.const", [v_b, v_x, v_w, (Nbe.Const ("RedBlackTree.tr.const", [v_vd, v_vc, v_vb, v_va, (Nbe.Const ("RedBlackTree.b.const", []))])), (Nbe.Const ("RedBlackTree.b.const", []))])), (Nbe.Const ("RedBlackTree.r.const", []))]))
  | c_RedBlackTree_balance_const [(Nbe.Const ("RedBlackTree.e.const", [])), v_z, v_y, (Nbe.Const ("RedBlackTree.tr.const", [(Nbe.Const ("RedBlackTree.tr.const", [v_c, v_t, v_s, v_b, (Nbe.Const ("RedBlackTree.r.const", []))])), v_x, v_w, (Nbe.Const ("RedBlackTree.e.const", [])), (Nbe.Const ("RedBlackTree.r.const", []))]))] = (Nbe.Const ("RedBlackTree.tr.const", [(Nbe.Const ("RedBlackTree.tr.const", [(Nbe.Const ("RedBlackTree.e.const", [])), v_z, v_y, v_c, (Nbe.Const ("RedBlackTree.b.const", []))])), v_t, v_s, (Nbe.Const ("RedBlackTree.tr.const", [v_b, v_x, v_w, (Nbe.Const ("RedBlackTree.e.const", [])), (Nbe.Const ("RedBlackTree.b.const", []))])), (Nbe.Const ("RedBlackTree.r.const", []))]))
  | c_RedBlackTree_balance_const [(Nbe.Const ("RedBlackTree.tr.const", [v_vd, v_vc, v_vb, v_va, (Nbe.Const ("RedBlackTree.b.const", []))])), v_z, v_y, (Nbe.Const ("RedBlackTree.tr.const", [v_c, v_t, v_s, (Nbe.Const ("RedBlackTree.tr.const", [v_b, v_x, v_w, v_a, (Nbe.Const ("RedBlackTree.r.const", []))])), (Nbe.Const ("RedBlackTree.r.const", []))]))] = (Nbe.Const ("RedBlackTree.tr.const", [(Nbe.Const ("RedBlackTree.tr.const", [(Nbe.Const ("RedBlackTree.tr.const", [v_vd, v_vc, v_vb, v_va, (Nbe.Const ("RedBlackTree.b.const", []))])), v_z, v_y, v_c, (Nbe.Const ("RedBlackTree.b.const", []))])), v_t, v_s, (Nbe.Const ("RedBlackTree.tr.const", [v_b, v_x, v_w, v_a, (Nbe.Const ("RedBlackTree.b.const", []))])), (Nbe.Const ("RedBlackTree.r.const", []))]))
  | c_RedBlackTree_balance_const [(Nbe.Const ("RedBlackTree.e.const", [])), v_z, v_y, (Nbe.Const ("RedBlackTree.tr.const", [v_c, v_t, v_s, (Nbe.Const ("RedBlackTree.tr.const", [v_b, v_x, v_w, v_a, (Nbe.Const ("RedBlackTree.r.const", []))])), (Nbe.Const ("RedBlackTree.r.const", []))]))] = (Nbe.Const ("RedBlackTree.tr.const", [(Nbe.Const ("RedBlackTree.tr.const", [(Nbe.Const ("RedBlackTree.e.const", [])), v_z, v_y, v_c, (Nbe.Const ("RedBlackTree.b.const", []))])), v_t, v_s, (Nbe.Const ("RedBlackTree.tr.const", [v_b, v_x, v_w, v_a, (Nbe.Const ("RedBlackTree.b.const", []))])), (Nbe.Const ("RedBlackTree.r.const", []))]))
  | c_RedBlackTree_balance_const [(Nbe.Const ("RedBlackTree.tr.const", [v_d, v_z, v_y, v_c, (Nbe.Const ("RedBlackTree.r.const", []))])), v_t, v_s, (Nbe.Const ("RedBlackTree.tr.const", [v_b, v_x, v_w, v_a, (Nbe.Const ("RedBlackTree.r.const", []))]))] = (Nbe.Const ("RedBlackTree.tr.const", [(Nbe.Const ("RedBlackTree.tr.const", [v_d, v_z, v_y, v_c, (Nbe.Const ("RedBlackTree.b.const", []))])), v_t, v_s, (Nbe.Const ("RedBlackTree.tr.const", [v_b, v_x, v_w, v_a, (Nbe.Const ("RedBlackTree.b.const", []))])), (Nbe.Const ("RedBlackTree.r.const", []))]))
  | c_RedBlackTree_balance_const [v_a, v_b, v_c, v_d] = (Nbe.Const ("RedBlackTree.balance.const", [v_a, v_b, v_c, v_d]));
