diff options
| author | Marcos Magueta <maguetamarcos@gmail.com> | 2026-07-12 18:54:09 -0300 |
|---|---|---|
| committer | Marcos Magueta <maguetamarcos@gmail.com> | 2026-07-12 18:54:09 -0300 |
| commit | d30a0bcf58d4bfd3ff090eb3e4479f9ab5867e8a (patch) | |
| tree | 03a85d901acfe2f6a67ebbc6ccbd50165766b513 /bin/main.ml | |
| parent | 90cb51a907a0f78b83cb66f497f6dc0f24f01706 (diff) | |
| download | SOL-d30a0bcf58d4bfd3ff090eb3e4479f9ab5867e8a.tar.gz SOL-d30a0bcf58d4bfd3ff090eb3e4479f9ab5867e8a.zip | |
repl output drops uninformative self bindings
Diffstat (limited to 'bin/main.ml')
| -rw-r--r-- | bin/main.ml | 10 |
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 |
