1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
(** This module extends {{!Base.Int_intf}[Base.Int_intf]}. *)
module type Round = Base.Int.Round
module type Stable = sig
module V1 : sig
type t [@@deriving sexp_grammar]
include Stable_comparable.With_stable_witness.V1 with type t := t
end
end
module type Hexable = sig
type t
module Hex : sig
type nonrec t = t [@@deriving bin_io, sexp, sexp_grammar, compare, hash, typerep]
include Base.Stringable.S with type t := t
val to_string_hum : ?delimiter:char -> t -> string
end
include Base.Int.Hexable with type t := t and module Hex := Hex
end
module type Extension = sig
type t [@@deriving bin_io, typerep]
include Hexable with type t := t
include Identifiable.S with type t := t
include Comparable.Validate_with_zero with type t := t
include Quickcheckable.S_int with type t := t
end
module type S_unbounded = sig
include Base.Int.S_unbounded
include Extension with type t := t with type comparator_witness := comparator_witness
end
module type S = sig
include Base.Int.S
include Extension with type t := t with type comparator_witness := comparator_witness
end
module type Extension_with_stable = sig
include Extension
module Stable :
Stable with type V1.t = t and type V1.comparator_witness = comparator_witness
end