sig
  type 'a t
  val empty : ('-> int array) -> 'FeatureTree.t
  val of_list : ('-> int array) -> 'a list -> 'FeatureTree.t
  val insert : '-> 'FeatureTree.t -> 'FeatureTree.t
  val features : 'FeatureTree.t -> '-> int array
  val find_leq : int array -> ('-> bool) -> 'FeatureTree.t -> 'a
  val find_leq_map : int array -> ('-> 'b option) -> 'FeatureTree.t -> 'b
  val remove :
    ('-> '-> bool) -> '-> 'FeatureTree.t -> 'FeatureTree.t
  val rebalance : 'FeatureTree.t -> 'FeatureTree.t
  val enum : 'FeatureTree.t -> 'BatEnum.t
end