aboutsummaryrefslogtreecommitdiffstats
path: root/lib/prelude/domains.ml
diff options
context:
space:
mode:
Diffstat (limited to 'lib/prelude/domains.ml')
-rw-r--r--lib/prelude/domains.ml6
1 files changed, 6 insertions, 0 deletions
diff --git a/lib/prelude/domains.ml b/lib/prelude/domains.ml
index bc1716a..29104bb 100644
--- a/lib/prelude/domains.ml
+++ b/lib/prelude/domains.ml
@@ -40,6 +40,7 @@ let integer : Domain.t =
in
Domain.make ~name:"integer" ~generator ~membership_criteria
~cardinality:Conventions.Cardinality.AlephZero
+ ~compare:(fun a b -> Stdlib.compare (Obj.magic a : int) (Obj.magic b : int))
(** Natural number domain: non-negative integers (0, 1, 2, …).
Schema: [value: natural]. *)
@@ -63,6 +64,7 @@ let natural : Domain.t =
in
Domain.make ~name:"natural" ~generator ~membership_criteria
~cardinality:Conventions.Cardinality.AlephZero
+ ~compare:(fun a b -> Stdlib.compare (Obj.magic a : int) (Obj.magic b : int))
(** Rational number domain: pairs [(numerator, denominator)] where the
denominator is never zero. The generator enumerates all such pairs via
@@ -97,6 +99,8 @@ let rational : Domain.t =
in
Domain.make ~name:"rational" ~generator ~membership_criteria
~cardinality:Conventions.Cardinality.AlephZero
+ ~compare:(fun a b ->
+ Stdlib.compare (Obj.magic a : float) (Obj.magic b : float))
(** String domain: any string value. Not enumerable.
Schema: [value: string]. *)
@@ -110,3 +114,5 @@ let string : Domain.t =
in
Domain.make ~name:"string" ~generator ~membership_criteria
~cardinality:Conventions.Cardinality.AlephZero
+ ~compare:(fun a b ->
+ String.compare (Obj.magic a : string) (Obj.magic b : string))