sig   type time_constraint =       [ `All       | `Created_after of float       | `Not_finished_before of float       | `Status_changed_since of float ]   type string_predicate = [ `Equals of string | `Matches of string ]   type filter =       [ `And of Ketrew_pure.Protocol.Up_message.filter list       | `False       | `Has_tag of Ketrew_pure.Protocol.Up_message.string_predicate       | `Id of Ketrew_pure.Protocol.Up_message.string_predicate       | `Name of Ketrew_pure.Protocol.Up_message.string_predicate       | `Not of Ketrew_pure.Protocol.Up_message.filter       | `Or of Ketrew_pure.Protocol.Up_message.filter list       | `Status of           [ `Activated_by_user           | `Dead_because_of_dependencies           | `Failed_from_condition           | `Failed_from_running           | `Failed_from_starting           | `Killable           | `Killed_from_passive           | `Really_running           | `Simple of Target.State.simple ]       | `True ]   type target_query = {     time_constraint : Ketrew_pure.Protocol.Up_message.time_constraint;     filter : Ketrew_pure.Protocol.Up_message.filter;   }   val pp_target_query :     Format.formatter ->     Ketrew_pure.Protocol.Up_message.target_query -> Ppx_deriving_runtime.unit   val show_target_query :     Ketrew_pure.Protocol.Up_message.target_query ->     Ppx_deriving_runtime.string   type query_option = [ `Block_if_empty_at_most of float ]   type t =       [ `Call_query of string * string       | `Get_available_queries of string       | `Get_deferred of string * int * int       | `Get_notifications of float option       | `Get_server_status       | `Get_target_flat_states of           [ `All | `Since of float ] * string list *           Ketrew_pure.Protocol.Up_message.query_option list       | `Get_target_ids of           Ketrew_pure.Protocol.Up_message.target_query *           Ketrew_pure.Protocol.Up_message.query_option list       | `Get_target_summaries of string list       | `Get_targets of string list       | `Kill_targets of string list       | `Process of Ketrew_pure.Protocol.Process_sub_protocol.up       | `Restart_targets of string list       | `Submit_targets of Target.t list ]   val to_json : t -> Yojson.Safe.json   val of_json_exn : Yojson.Safe.json -> t   val serialize : t -> string   val deserialize_exn : string -> t   val target_query_markup :     Ketrew_pure.Protocol.Up_message.target_query ->     Internal_pervasives.Display_markup.t end