sig
module type Equatable =
sig
type 'a t
val equal :
'a Reins.Types.Poly.Equatable.t ->
'a Reins.Types.Poly.Equatable.t -> bool
end
module type Comparable =
sig
type 'a t
val compare :
('a -> 'a -> int) ->
'a Reins.Types.Poly.Comparable.t ->
'a Reins.Types.Poly.Comparable.t -> int
val to_string :
('a -> string) -> 'a Reins.Types.Poly.Comparable.t -> string
end
module type Hashable =
sig type 'a t val equal : 'a t -> 'a t -> bool val hash : 'a t -> int end
module type Arbitrary =
sig
type 'a t
val gen :
(?size:int -> Random.State.t -> 'a) ->
?size:int -> Random.State.t -> 'a Reins.Types.Poly.Arbitrary.t
val to_string :
('a -> string) -> 'a Reins.Types.Poly.Arbitrary.t -> string
end
module type ArbitraryComparable =
sig
type 'a t
val gen :
(?size:int -> Random.State.t -> 'a) ->
?size:int -> Random.State.t -> 'a t
val to_string : ('a -> string) -> 'a t -> string
val compare : ('a -> 'a -> int) -> 'a t -> 'a t -> int
end
module ComposeComparable :
functor (A : Comparable) ->
functor (B : Comparable) ->
sig
type 'a t = 'a B.t A.t
val compare :
('a -> 'a -> int) ->
'a Reins.Types.Poly.ComposeComparable.t ->
'a Reins.Types.Poly.ComposeComparable.t -> int
val to_string :
('a -> string) ->
'a Reins.Types.Poly.ComposeComparable.t -> string
end
module ComposeGen :
functor (A : Arbitrary) ->
functor (B : Arbitrary) ->
sig
type 'a t = 'a B.t A.t
val gen :
(?size:int -> Random.State.t -> 'a) ->
?size:int -> Random.State.t -> 'a Reins.Types.Poly.ComposeGen.t
val to_string :
('a -> string) -> 'a Reins.Types.Poly.ComposeGen.t -> string
end
module ComposeGenComparable :
functor (A : ArbitraryComparable) ->
functor (B : ArbitraryComparable) ->
sig
type 'a t = 'a B.t A.t
val gen :
(?size:int -> Random.State.t -> 'a) ->
?size:int ->
Random.State.t -> 'a Reins.Types.Poly.ComposeGenComparable.t
val to_string :
('a -> string) ->
'a Reins.Types.Poly.ComposeGenComparable.t -> string
val compare :
('a -> 'a -> int) ->
'a Reins.Types.Poly.ComposeGenComparable.t ->
'a Reins.Types.Poly.ComposeGenComparable.t -> int
end
module Close :
sig
type 'a t = 'a
val to_string : ('a -> 'b) -> 'a -> 'b
val compare : ('a -> 'b -> 'c) -> 'a -> 'b -> 'c
end
end