From 99ac1e7d9b77d69f2a85a108468d4433953d8269 Mon Sep 17 00:00:00 2001 From: Marcos Magueta Date: Sun, 8 Mar 2026 01:12:02 -0300 Subject: constraints --- lib/prelude/domains.ml | 6 ++++++ 1 file changed, 6 insertions(+) (limited to 'lib/prelude/domains.ml') 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)) -- cgit v1.2.3