sig
  exception Internal_error of string
  exception Not_implemented of string
  val fatal_error : string -> 'a
  val not_implemented : string -> 'a
  val warning : string -> unit
  val add_assoc : ('k * 'v) list -> 'k * '-> ('k * 'v) list
  val collect_assoc : ('-> ('k * 'v) list) -> 'a list -> ('k * 'v) list
  val fold_left : ('-> '-> 'a) -> 'b list -> '-> 'a
  val id : '-> 'a
  val list_split_at : int -> 'a list -> 'a list * 'a list
  val bit_size : int -> int
end