sig   type t   type trigger = [ `After | `Before ]   type direct   val direct :     ?preset:B0.Conf.Preset.t ->     ?setup:(B0.Conf.t -> unit B0.result) ->     ?delete:(B0.Conf.t -> unit B0.result) ->     ?env:(unit -> B0.Env.t B0.result) ->     ?build:(B0.Variant.Scheme.trigger -> B0.Build.t -> unit B0.result) ->     ?stage:(B0.Variant.Scheme.trigger -> B0.Outcome.t -> unit B0.result) ->     unit -> B0.Variant.Scheme.direct   val direct_preset : B0.Variant.Scheme.direct -> B0.Conf.Preset.t option   val direct_env : B0.Variant.Scheme.direct -> unit -> B0.Env.t B0.result   type proxy_conf   val proxy_conf :     root_dir:B0.Fpath.t ->     b0_dir:B0.Fpath.t ->     variant_dir:B0.Fpath.t -> unit -> B0.Variant.Scheme.proxy_conf   val proxy_conf_root_dir : B0.Variant.Scheme.proxy_conf -> B0.Fpath.t   val proxy_conf_b0_dir : B0.Variant.Scheme.proxy_conf -> B0.Fpath.t   val proxy_conf_variant_dir : B0.Variant.Scheme.proxy_conf -> B0.Fpath.t   type proxy   val proxy :     ?create:(B0.Variant.Scheme.proxy_conf -> unit B0.result) ->     ?setup:(B0.Variant.Scheme.proxy_conf -> unit B0.result) ->     ?delete:(B0.Variant.Scheme.proxy_conf -> unit B0.result) ->     run:(B0.Variant.Scheme.proxy_conf ->          B0.Cmd.t -> B0.OS.Cmd.status B0.result) ->     B0.Variant.Scheme.t -> B0.Variant.Scheme.proxy   val proxy_run :     B0.Variant.Scheme.proxy ->     B0.Variant.Scheme.proxy_conf -> B0.Cmd.t -> B0.OS.Cmd.status B0.result   val proxy_create :     B0.Variant.Scheme.proxy -> B0.Variant.Scheme.proxy_conf -> unit B0.result   val proxy_delete :     B0.Variant.Scheme.proxy -> B0.Variant.Scheme.proxy_conf -> unit B0.result   val proxy_setup :     B0.Variant.Scheme.proxy -> B0.Variant.Scheme.proxy_conf -> unit B0.result   type kind =       [ `Direct of B0.Variant.Scheme.direct       | `Proxy of B0.Variant.Scheme.proxy ]   val v :     ?loc:B0.Def.loc ->     ?doc:string -> string -> B0.Variant.Scheme.kind -> B0.Variant.Scheme.t   val kind : B0.Variant.Scheme.t -> B0.Variant.Scheme.kind   val nop : B0.Variant.Scheme.t   val with_preset :     ?loc:B0.Def.loc ->     ?doc:string ->     B0.Variant.Scheme.t ->     B0.Conf.Preset.t option -> string -> B0.Variant.Scheme.t   val wrap :     B0.Variant.Scheme.t ->     B0.Variant.Scheme.t -> string -> B0.Variant.Scheme.t   val value_kind : string   val name : t -> string   val loc : t -> Def.loc   val doc : t -> string   val equal : t -> t -> bool   val compare : t -> t -> int   val compare_by_name : t -> t -> int   val find : string -> t option   val get : string -> t   val get_or_suggest : string -> (t, string list) result   val list : unit -> t list   val pp_name_str : string Fmt.t   val pp_name : t Fmt.t   val pp_synopsis : t Fmt.t   val pp_info : t Fmt.t   val pp_info_ext : t Fmt.t -> t Fmt.t end