sig
  type cmd
  val cmd : string As_conf.key -> As_acmd.cmd As_conf.value
  val static : string -> As_acmd.cmd
  type t
  val v :
    ?stdin:As_path.t ->
    ?stdout:As_path.t ->
    ?stderr:As_path.t -> As_acmd.cmd -> string list -> As_acmd.t
  val cmd_key : As_acmd.t -> string As_conf.key option
  val cmd_name : As_acmd.t -> string
  val args : As_acmd.t -> string list
  val stdin : As_acmd.t -> As_path.t option
  val stdout : As_acmd.t -> As_path.t option
  val stderr : As_acmd.t -> As_path.t option
  val pp : Format.formatter -> As_acmd.t -> unit
  val ctx : As_ctx.t -> As_acmd.t -> As_ctx.t
  val args_with_ctx :
    As_conf.t -> As_ctx.t -> As_args.t -> As_acmd.t -> string list
  module Args :
    sig
      val add : '-> 'a list -> 'a list
      val adds : 'a list -> 'a list -> 'a list
      val add_if : bool -> '-> 'a list -> 'a list
      val adds_if : bool -> 'a list -> 'a list -> 'a list
      val fadd_if : bool -> ('-> 'a) -> '-> 'a list -> 'a list
      val fadds_if : bool -> ('-> 'a list) -> '-> 'a list -> 'a list
      val path_arg : ?opt:string -> As_path.t -> string list -> string list
      val path_args :
        ?opt:string -> As_path.t list -> string list -> string list
      val path : As_path.t -> ext:As_path.ext -> As_path.t
    end
  val dev_null : As_path.t As_conf.value
  val cd : (As_path.t -> As_acmd.t) As_conf.value
  val ln : (As_path.t -> As_path.t -> As_acmd.t) As_conf.value
  val ln_rel : (As_path.t -> As_path.t -> As_acmd.t) As_conf.value
  val cp : (As_path.t -> As_path.t -> As_acmd.t) As_conf.value
  val mv : (As_path.t -> As_path.t -> As_acmd.t) As_conf.value
  val rm_files : (?f:bool -> As_path.t list -> As_acmd.t) As_conf.value
  val rm_dirs :
    (?f:bool -> ?r:bool -> As_path.t list -> As_acmd.t) As_conf.value
  val mkdir : (As_path.t -> As_acmd.t) As_conf.value
  val stamp : (As_path.t -> string -> As_acmd.t) As_conf.value
end