sig
  type t = Ketrew_pure.Target.Condition.t
  val ( && ) :
    Ketrew.EDSL.Condition.t ->
    Ketrew.EDSL.Condition.t -> Ketrew.EDSL.Condition.t
  val chain_and : Ketrew.EDSL.Condition.t list -> Ketrew.EDSL.Condition.t
  val program :
    ?returns:int ->
    ?host:Ketrew.EDSL.Host.t ->
    Ketrew.EDSL.Program.t -> Ketrew.EDSL.Condition.t
  module Volume :
    sig
      type t = Ketrew_pure.Target.Volume.t
      type structure = Ketrew_pure.Target.Volume.structure
      val create :
        host:Ketrew.EDSL.Host.t ->
        root:string ->
        Ketrew.EDSL.Condition.Volume.structure ->
        Ketrew.EDSL.Condition.Volume.t
      val file : string -> Ketrew.EDSL.Condition.Volume.structure
      val dir :
        string ->
        Ketrew.EDSL.Condition.Volume.structure list ->
        Ketrew.EDSL.Condition.Volume.structure
    end
  val volume_exists :
    Ketrew.EDSL.Condition.Volume.t -> Ketrew.EDSL.Condition.t
  val volume_size_greater_of_equal :
    Ketrew.EDSL.Condition.Volume.t -> int -> Ketrew.EDSL.Condition.t
end