aboutsummaryrefslogtreecommitdiffstats
path: root/bin/main.ml
diff options
context:
space:
mode:
authorMarcos Magueta <maguetamarcos@gmail.com>2026-07-12 18:54:09 -0300
committerMarcos Magueta <maguetamarcos@gmail.com>2026-07-12 18:54:09 -0300
commitd30a0bcf58d4bfd3ff090eb3e4479f9ab5867e8a (patch)
tree03a85d901acfe2f6a67ebbc6ccbd50165766b513 /bin/main.ml
parent90cb51a907a0f78b83cb66f497f6dc0f24f01706 (diff)
downloadSOL-d30a0bcf58d4bfd3ff090eb3e4479f9ab5867e8a.tar.gz
SOL-d30a0bcf58d4bfd3ff090eb3e4479f9ab5867e8a.zip
repl output drops uninformative self bindings
Diffstat (limited to 'bin/main.ml')
-rw-r--r--bin/main.ml10
1 files changed, 9 insertions, 1 deletions
diff --git a/bin/main.ml b/bin/main.ml
index 26375da..ede8ac5 100644
--- a/bin/main.ml
+++ b/bin/main.ml
@@ -9,11 +9,19 @@ let print_solutions solutions =
| solutions ->
List.iter
(fun { Sol.Vm.bindings; residue } ->
+ (* A variable resolved to itself carries no information;
+ its constraints, if any, are in the residue. *)
+ let informative =
+ List.filter
+ (fun (variable, pattern) ->
+ not (Sol.Pattern.equal pattern (Sol.Pattern.Var variable)))
+ bindings
+ in
let parts =
List.map
(fun (variable, pattern) ->
Format.asprintf "%s = %a" variable Sol.Pattern.pp pattern)
- bindings
+ informative
@ List.map (Format.asprintf "%a" Sol.Vm.pp_residual) residue
in
match parts with