sig
  val to_string : OpamTypes.filter -> string
  val fold_down_left :
    ('-> OpamTypes.filter -> 'a) -> '-> OpamTypes.filter -> 'a
  val variables : OpamTypes.filter -> OpamTypes.full_variable list
  type env = OpamTypes.full_variable -> OpamTypes.variable_contents option
  type fident =
      OpamTypes.name list * OpamTypes.variable * (string * string) option
  val expand_string : OpamFilter.env -> string -> string
  val eval :
    ?default:OpamTypes.variable_contents ->
    OpamFilter.env -> OpamTypes.filter -> OpamTypes.variable_contents
  val eval_to_bool :
    ?default:bool -> OpamFilter.env -> OpamTypes.filter -> bool
  val opt_eval_to_bool : OpamFilter.env -> OpamTypes.filter option -> bool
  val eval_to_string :
    ?default:string -> OpamFilter.env -> OpamTypes.filter -> string
  val ident_of_var : OpamTypes.full_variable -> OpamFilter.fident
  val ident_value :
    ?default:OpamTypes.variable_contents ->
    OpamFilter.env -> OpamFilter.fident -> OpamTypes.variable_contents
  val ident_string :
    ?default:string -> OpamFilter.env -> OpamFilter.fident -> string
  val ident_bool :
    ?default:bool -> OpamFilter.env -> OpamFilter.fident -> bool
  val expand_interpolations_in_file :
    OpamFilter.env -> OpamTypes.basename -> unit
  val commands : OpamFilter.env -> OpamTypes.command list -> string list list
  val single_command : OpamFilter.env -> OpamTypes.arg list -> string list
  val commands_variables :
    OpamTypes.command list -> OpamTypes.full_variable list
end