functor (C : Index.CLAUSE->
  sig
    type feature_vector = int list
    module Feature :
      sig
        type t = { name : string; f : FeatureVector.lits -> int; }
        val name : FeatureVector.Make.Feature.t -> string
        val compute :
          FeatureVector.Make.Feature.t -> FeatureVector.lits -> int
        val pp : t CCFormat.printer
        val to_string : t -> string
        val sum_of_depths : FeatureVector.Make.Feature.t
        val size_plus : FeatureVector.Make.Feature.t
        val size_minus : FeatureVector.Make.Feature.t
        val count_symb_plus : ID.t -> FeatureVector.Make.Feature.t
        val count_symb_minus : ID.t -> FeatureVector.Make.Feature.t
        val max_depth_plus : ID.t -> FeatureVector.Make.Feature.t
        val max_depth_minus : ID.t -> FeatureVector.Make.Feature.t
      end
    val compute_fv :
      FeatureVector.Make.Feature.t list ->
      FeatureVector.lits -> FeatureVector.Make.feature_vector
    type t
    module C :
      sig
        type t = C.t
        val compare : t -> t -> int
        val to_lits : t -> Index_intf.lits
      end
    val name : string
    val empty : unit -> t
    val add : t -> C.t -> t
    val add_seq : t -> C.t Sequence.t -> t
    val add_list : t -> C.t list -> t
    val remove : t -> C.t -> t
    val remove_seq : t -> C.t Sequence.t -> t
    val retrieve_subsuming : t -> Index_intf.lits -> C.t Sequence.t
    val retrieve_subsuming_c : t -> C.t -> C.t Sequence.t
    val retrieve_subsumed : t -> Index_intf.lits -> C.t Sequence.t
    val retrieve_subsumed_c : t -> C.t -> C.t Sequence.t
    val iter : t -> C.t Sequence.t
    val fold : ('-> C.t -> 'a) -> '-> t -> 'a
    val retrieve_alpha_equiv : t -> FeatureVector.lits -> C.t Sequence.t
    val retrieve_alpha_equiv_c : t -> C.t -> C.t Sequence.t
    val empty_with : FeatureVector.Make.Feature.t list -> t
    val default_features : FeatureVector.Make.Feature.t list
    val features_of_signature :
      ?ignore:(ID.t -> bool) ->
      Signature.t -> FeatureVector.Make.Feature.t list
    val of_signature : Signature.t -> t
    val features : t -> FeatureVector.Make.Feature.t list
  end