12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576777879808182openBasemoduletypeBits=sigtypet[@@derivingcompare,sexp_of]includeComb.Swithtypet:=tincludeComparator.Swithtypet:=t(** The number of bytes used to represent the data in [t]. This excludes
any bytes used to represent any associated metadata.
*)valnumber_of_data_bytes:t->int(** Get the i-th 64-bit word within the underlying representation. *)valunsafe_get_int64:t->int->int64(** Set the i-th 64-bit word within the underlying representation. *)valunsafe_set_int64:t->int->int64->unitmoduleExpert:sig(** Access the underlying data representation. Note that this is unstable,
and may change over time.
*)valunsafe_underlying_repr:t->bytes(** Offset to access actual data within in the underlying repr. *)valoffset_for_data:intend(** [Mutable] is a mutable bits used by [Cyclesim] for efficiency. *)moduleMutable:sigtypebitstypet=privatebytesvalempty:tvalwidth:t->intvalto_string:t->string(** Create a [t] of given width, initially set to [0]. *)valcreate:int->tvalcopy:src:t->dst:t->unitvalcopy_bits:src:bits->dst:t->unit(** A [Bits.Mutable.t] can be accessed as an array of 64 bit words. *)valnum_words:t->intvalunsafe_get_int64:t->int->int64valunsafe_set_int64:t->int->int64->unitvalto_bits:t->bitsvalof_constant:Constant.t->tvalto_constant:t->Constant.tvalvdd:tvalgnd:tvalwire:int->tval(--):t->string->tval(&:):t->t->t->unitval(|:):t->t->t->unitval(^:):t->t->t->unitval(~:):t->t->unitval(+:):t->t->t->unitval(-:):t->t->t->unitval(==:):t->t->t->unitval(<>:):t->t->t->unitval(<:):t->t->t->unitvalmux:t->t->tlist->unitvalconcat:t->tlist->unitvalconcat_rev_array:t->tarray->unitvalselect:t->t->int->int->unitval(*:):t->t->t->unitval(*+):t->t->t->unit(** Mask the unused bits to zero. *)valmask:t->unitmoduleComb:Comb.Swithtypet=tendwithtypebits:=t(** Pretty printer. *)valpp:Formatter.t->t->unitend