diff --git a/regression_ppx/dune b/regression_ppx/dune index 05771aa4..a881ac6e 100644 --- a/regression_ppx/dune +++ b/regression_ppx/dune @@ -148,13 +148,29 @@ (modules test013mutual) (package OCanren) (public_names -) - (flags - (:standard - ;-dsource - ; - )) (preprocess - (pps OCanren-ppx.ppx_distrib GT.ppx_all -- -new-typenames -pretty)) + (pps + OCanren-ppx.ppx_distrib + GT.ppx_all + OCanren-ppx.ppx_fresh + -- + -new-typenames + -pretty)) + (libraries OCanren OCanren.tester)) + +(executables + (names test014diseq) + (modules test014diseq) + (package OCanren) + (public_names -) + (preprocess + (pps + GT.ppx_all + OCanren-ppx.ppx_fresh + OCanren-ppx.ppx_tester + OCanren-ppx.ppx_repr + -- + -pretty)) (libraries OCanren OCanren.tester)) (cram @@ -283,3 +299,12 @@ %{project_root}/ppx/pp_ocanren_all.exe test013mutual.ml test013mutual.exe)) + +(cram + (package OCanren) + (applies_to test014) + (deps + (package OCanren-ppx) + %{project_root}/ppx/pp_ocanren_all.exe + test014diseq.ml + test014diseq.exe)) diff --git a/regression_ppx/test014.t b/regression_ppx/test014.t new file mode 100644 index 00000000..6811454e --- /dev/null +++ b/regression_ppx/test014.t @@ -0,0 +1,4 @@ + $ ./test014diseq.exe + rel, 1 answer { + Fatal error: exception File "src/core/Disequality.ml", line 177, characters 8-14: Assertion failed + [2] diff --git a/regression_ppx/test014diseq.ml b/regression_ppx/test014diseq.ml new file mode 100644 index 00000000..88bd6ab5 --- /dev/null +++ b/regression_ppx/test014diseq.ml @@ -0,0 +1,18 @@ +open OCanren +open Tester + +let rel list1 = + let open OCanren.Std in + fresh + (list2 hd1 tl1 hd2 tl2) + (list1 =/= list2) + (list1 === hd1 % tl1) + (list2 === hd2 % tl2) + (hd2 === !!1) + (tl2 === nil ()) + (hd1 === !!1) + (tl1 === nil ()) +;; + +(* let () = [%tester run_r [%show GT.int GT.list] (Std.List.reify reify) 1 (fun q -> rel q)] *) +let () = run_r (Std.List.reify reify) ([%show: GT.int logic Std.List.logic] ()) 1 q qh (REPR rel)