Hardcaml.InterfaceInterfaces specify the widths and names of a group of signals, and some functions for manipulating the signals as a group.
They are generally used with ppx_deriving_hardcaml as follows
type t = { ... } [@@deriving sexp_of, hardcaml]The sexp_of is required, and must appear before hardcaml. This syntax generates a call to Interface.Make, which therefore does not need to be explicitly called.
module type Pre_partial = sig ... endmodule type Pre = sig ... endmodule type S = sig ... endmodule type S_Of_signal = sig ... endmodule type Ast = sig ... endmodule type Empty = sig ... endmodule type S_with_ast = sig ... endType of functions representing the implementation of a circuit from an input to output interface.
Recreate a Hardcaml Interface with the same type, but different port names / widths.