Interface.MakeSourceinclude Hardcaml_interface_types.Pre with type 'a t := 'a X.tinclude Hardcaml_interface_types.Pre_partial with type 'a t := 'a X.tinclude Ppx_compare_lib.Equal.S1 with type 'a t := 'a X.tinclude Ppx_compare_lib.Equal.S1__local with type 'a t := 'a X.tinclude Ppx_compare_lib.Comparable.S1 with type 'a t := 'a X.tinclude Ppx_compare_lib.Comparable.S1__local with type 'a t := 'a X.tval sexp_of_t : ('a -> Sexplib0.Sexp.t) -> 'a X.t -> Sexplib0.Sexp.tval iter : 'a X.t -> f:('a -> unit) @ local -> unitval to_list : 'a X.t -> 'a listval port_names_and_widths : (string * int) X.tinclude Base.Equal.S1__local with type 'a t := 'a X.tval equal : 'a Base.Equal.equal -> 'a X.t Base.Equal.equalRTL names specified in the interface definition - commonly also the OCaml field name.
Create interface from association list indexed by tag.
Sum of all port widths specified in the interface definition.
Offset of each field within the interface. The first field is placed at the least significant bit, unless the rev argument is true.
Take a list of interfaces and produce a single interface where each field is a list.
Create a list of interfaces from a single interface where each field is a list. Raises if all lists don't have the same length.
Similar to Monad.all for lists -- combine and lift the monads to outside the interface.
Equivalent to All(Or_error).all. This is made a special case for convenience.
Helper functions to ease usage of the Always API when working with interfaces.
Optional Metadata