package hardcaml

  1. Overview
  2. Docs
Legend:
Library
Module
Module type
Parameter
Class
Class type

Interfaces 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 ... end
module type Pre = sig ... end
module type S = sig ... end
module type Ast = sig ... end
module type Empty = sig ... end
module Ast : Ast
module Empty : Empty
module type S_with_ast = sig ... end
module Create_fn (I : S) (O : S) : sig ... end

Type of functions representing the implementation of a circuit from an input to output interface.

module Make (X : Pre) : S with type 'a t := 'a X.t
module type S_enum = sig ... end
module type S_enums = sig ... end
module Make_enums (Enum : sig ... end) : S_enums with module Enum := Enum

Constructs a hardcaml interface which represents hardware for the given Enum as an absstract Interface.