Imported Upstream version 0.2
[pkg-ocaml-deriving-ocsigen.git] / lib / deriving_Eq.mli
blob74b3e82ac2b2b3603d66d0f416def24c47540cb9
1 (* A module for SML-style equality, i.e. where equality of mutables is
2 physical equality and equality of immutables is structural equality.
3 *)
5 module type Eq =
6 sig
7 type a
8 val eq : a -> a -> bool
9 end
11 module Defaults (E : Eq) : Eq with type a = E.a
13 module Eq_immutable (S : sig type a end) : Eq with type a = S.a
14 module Eq_mutable (S : sig type a end) : Eq with type a = S.a
16 module Eq_int : Eq with type a = int
17 module Eq_num : Eq with type a = Num.num
18 module Eq_bool : Eq with type a = bool
19 module Eq_float : Eq with type a = float
20 module Eq_unit : Eq with type a = unit
21 module Eq_char : Eq with type a = char
22 module Eq_string : Eq with type a = string
23 module Eq_int32 : Eq with type a = int32
24 module Eq_int64 : Eq with type a = int64
25 module Eq_nativeint : Eq with type a = nativeint
26 module Eq_ref (E : Eq) : Eq with type a = E.a ref
27 module Eq_array (E : Eq) : Eq with type a = E.a array
28 module Eq_list (E : Eq) : Eq with type a = E.a list
29 module Eq_option (E : Eq): Eq with type a = E.a option
30 module Eq_map_s_t (E : Eq) (M : Map.S) : Eq with type a = E.a M.t