From d30a0bcf58d4bfd3ff090eb3e4479f9ab5867e8a Mon Sep 17 00:00:00 2001 From: Marcos Magueta Date: Sun, 12 Jul 2026 18:54:09 -0300 Subject: repl output drops uninformative self bindings --- bin/main.ml | 10 +++++++++- 1 file changed, 9 insertions(+), 1 deletion(-) 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 -- cgit v1.2.3