sig
  type t
  val of_expr : Benl_types.expr -> Query.t
  val of_string : string -> Query.t
  val to_string : ?escape:bool -> Query.t -> string
  val fields : Benl_base.Fields.t -> Query.t -> Benl_base.Fields.t
  val eval : ([> `source ] as 'a) -> 'Package.t -> Query.t -> bool
  val eval_source : [ `source ] Package.t -> Query.t -> bool
  val eval_binary : [ `binary ] Package.t -> Query.t -> bool
end