Legend:
Library
Module
Module type
Parameter
Class
Class type
module type Gates = sig ... end
module type Primitives = sig ... end
module type S = sig ... end
type nonrec 'a optional_branching_factor = ?branching_factor:Base.int -> 'a
type nonrec ('a, 'b) with_valid2 = {
valid : 'a;
value : 'b;
}
type nonrec 'a with_valid = ( 'a, 'a ) with_valid2
module Make_primitives (Gates : Gates) : Primitives with type t = Gates.t
module Make (Primitives : Primitives) : S with type t = Primitives.t

Generates the full combinational API