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