aboutsummaryrefslogtreecommitdiffstats
path: root/lib/evaluators
diff options
context:
space:
mode:
Diffstat (limited to 'lib/evaluators')
-rw-r--r--lib/evaluators/FOL.ml15
1 files changed, 3 insertions, 12 deletions
diff --git a/lib/evaluators/FOL.ml b/lib/evaluators/FOL.ml
index a7685bd..01264e3 100644
--- a/lib/evaluators/FOL.ml
+++ b/lib/evaluators/FOL.ml
@@ -53,11 +53,7 @@ let rec bencode_of_term =
( 'w',
Bencode.Dict
[ "term", bencode_of_term term;
- ( "binding",
- Bencode.Dict
- ( BatMap.String.bindings binding
- |> List.map (fun (name, value) -> name, Concepts.Tuple.bencode_of_value value) ) )
- ] )
+ "binding", Bencode.of_map Concepts.Tuple.bencode_of_value binding ] )
let rec term_of_bencode =
let open Utilities.Result in
@@ -74,15 +70,10 @@ let rec term_of_bencode =
Ok (Project (term, BatFingerTree.of_list attributes))
| Bencode.Tagged ('w', data) ->
let* term = Bencode.field "term" data |>> term_of_bencode in
- let* binding = Bencode.field "binding" data |>> Bencode.as_dict in
let* binding =
- List.map
- (fun (name, value) ->
- Concepts.Tuple.value_of_bencode value |> Result.map (fun value -> name, value) )
- binding
- |> Utilities.List.sequence
+ Bencode.field "binding" data |>> Bencode.to_map Concepts.Tuple.value_of_bencode
in
- Ok (Where (term, BatMap.String.of_list binding))
+ Ok (Where (term, binding))
| _ -> Error (Error.malformed_program ())
let encode term = bencode_of_term term |> Bencode.to_bytes |> Bytes.to_string