Module Hardcaml.Comb

Combinational 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 ... 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