aboutsummaryrefslogtreecommitdiffstats
path: root/bin
diff options
context:
space:
mode:
Diffstat (limited to '')
-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