sig
  type count_matrix = int array array
  type background = Biocaml_pwm.background
  val flat_background : unit -> background
  val background_of_sequence : string -> float -> background
  type t = Biocaml_pwm.t
  val make : count_matrix -> background -> t
  val tandem :
    ?orientation:[ `direct | `everted | `inverted ] ->
    spacer:int -> count_matrix -> count_matrix -> background -> t
  val reverse_complement : t -> t
  val scan : t -> string -> float -> (int * float) list
  val fast_scan : t -> string -> float -> (int * float) list
  val best_hit : t -> string -> int * float
end