sig
  type matcher = { stringform : string; compiledform : Str.regexp; } 
  val make : string -> Ligand.Matcher.matcher
  val stringform : Ligand.Matcher.matcher -> string
  val matcher_compare :
    Ligand.Matcher.matcher -> Ligand.Matcher.matcher -> bool
  val allmatches : Ligand.Matcher.matcher -> Ligand.t -> Ligand.interval list
  val verify_match_interval :
    Ligand.Matcher.matcher -> Ligand.t -> Ligand.interval -> bool
  val matcher_concat : Ligand.Matcher.matcher list -> Ligand.Matcher.matcher
  type string_permuter
  val make_string_permuter :
    Ligand.Matcher.matcher array ->
    (int array * int array) * (int array * int array) ->
    Ligand.Matcher.string_permuter
  val permute_strings :
    Ligand.Matcher.string_permuter -> string * string -> string * string
  type snippet = string * Ligand.Matcher.matcher
  val snipmatch : Ligand.Matcher.snippet -> Ligand.Matcher.snippet -> bool
end