sig
  type t = Action.t
  val v :
    ?log:string ->
    ?ctx:Ctx.t ->
    ?inputs:Path.t list -> ?outputs:Path.t list -> Acmd.t list -> t
  val ctx : t -> Ctx.t
  val inputs : t -> Path.t list
  val outputs : t -> Path.t list
  val cmds : t -> Acmd.t list
  val log : t -> string option
  val products : t -> Path.t list
  val symlink : (Path.t -> Path.t -> t) Conf.value
  val list_inputs : t list -> Path.t list
  val list_outputs : t list -> Path.t list
  val list_products : t list -> Path.t list
  val args : t -> Assemblage.Private.Args.t
  val pp : Assemblage.Private.Conf.t -> Format.formatter -> t -> unit
end