40 lines
1.2 KiB
OCaml
40 lines
1.2 KiB
OCaml
open Ppx_compare_lib
|
|
|
|
type enum =
|
|
| A
|
|
| B
|
|
| C
|
|
|
|
module Compare = struct
|
|
let optim_bool : bool compare = Stdlib.compare
|
|
let optim_char : char compare = Stdlib.compare
|
|
let optim_float : float compare = Stdlib.compare
|
|
let optim_int : int compare = Stdlib.compare
|
|
let optim_int32 : int32 compare = Stdlib.compare
|
|
let optim_int64 : int64 compare = Stdlib.compare
|
|
let optim_nativeint : nativeint compare = Stdlib.compare
|
|
let optim_string : string compare = Stdlib.compare
|
|
let optim_unit : unit compare = Stdlib.compare
|
|
let optim_enum : enum compare = Stdlib.compare
|
|
end
|
|
|
|
module Equal = struct
|
|
let optim_bool : bool equal = Stdlib.( = )
|
|
let optim_char : char equal = Stdlib.( = )
|
|
let optim_float : float equal = Stdlib.( = )
|
|
let optim_int : int equal = Stdlib.( = )
|
|
let optim_int32 : int32 equal = Stdlib.( = )
|
|
let optim_nativeint : nativeint equal = Stdlib.( = )
|
|
let optim_string : string equal = Stdlib.( = )
|
|
let optim_unit : unit equal = Stdlib.( = )
|
|
let optim_enum : enum equal = Stdlib.( = )
|
|
|
|
let optim_int64 =
|
|
if Sys.word_size = 32
|
|
then
|
|
(* On 32bits, polymmorphic comparison of int64 values is not specialized *)
|
|
fun _ _ ->
|
|
false
|
|
else (Stdlib.( = ) : int64 equal)
|
|
;;
|
|
end
|