sig
  exception No_stem of string
  val rule_list_1a : (int * string * string * int) list
  val rule_list_1b : (int * string * string * int) list
  val rule_list_1b1 : (int * string * string * int) list
  val rule_list_1c : (int * string * string * int) list
  val rule_list_2 : (int * string * string * int) list
  val rule_list_3 : (int * string * string * int) list
  val rule_list_4 : (int * string * string * int) list
  val rule_list_5a : (int * string * string * int) list
  val rule_list_5b : (int * string * string * int) list
  val all_rules : (int * string * string * int) list list
  val is_vowel : char -> bool
  val word_size : string -> int
  val ends_with_cvc : string -> bool
  val add_an_e : string -> bool
  val remove_an_e : string -> bool
  val contains_vowel : string -> bool
  val rules_criteria : (int list * (string -> bool)) list
  val match_rule : string -> int * string * string * int -> bool
  val apply_rule : string -> int * string * string * int -> string
  val replace_end :
    string -> (int * string * string * int) list -> int * string
  val stem : string -> string -> string
  val stem_cmp : string -> string -> bool
  val stem_gt : string -> string -> bool
  val stem_gte : string -> string -> bool
  val stem_lt : string -> string -> bool
  val stem_lte : string -> string -> bool
end