Module Brzo.Pre_domain


A pre-domain is a domain with out its concrete outcome implementation except for their names and documentation. There are some recursive knots that need to be untied.


type outcome

The type for pre-outcomes.

val outcome : name:string -> doc:string -> outcome

outcome ~name ~doc is a pre-outcome with name name and cmdliner documentation string doc.

val outcome_name : outcome -> string

outcome_name o is the name of the pre-outcome o.

val outcome_doc : outcome -> string

outcome_name o is the documetnation string of the pre-outcome o.


module type CONF = sig ... end

The module type for pre-domain configurations.

module type T = sig ... end

The module type for pre-domains.

type t =
| V : (module T with type Conf.t = 'a) -> t

The type for pre-domains.

val name : t -> string

id d is the name of pre-domain d.

val outcome_names : t -> B0_std.String.Set.t

outcome_names d is the set of outcomes provided by the pre-domain d.