Hardcaml.CombCombinational logic API.
This includes standard arithmetic, logical, equality and comparision operators, as well as more hardware specific functions such as bit selection, concatention, multiplexing etc.
In operators, a trailing colon : indicates that the operator treats the bits as unsigned or that sign doesn't matter, while a trailing plus + indicates that the operator treats the bits as signed twos-complement.
module type Gates = sig ... endmodule type Primitives = sig ... endmodule type S = sig ... endtype nonrec 'a with_valid = ( 'a, 'a ) with_valid2module Make_primitives (Gates : Gates) : Primitives with type t = Gates.tmodule Make (Primitives : Primitives) : S with type t = Primitives.tGenerates the full combinational API