aboutsummaryrefslogtreecommitdiffstats
path: root/lib/evaluators
diff options
context:
space:
mode:
authorMarcos Magueta <maguetamarcos@gmail.com>2026-10-31 03:15:28 -0300
committerMarcos Magueta <maguetamarcos@gmail.com>2026-10-31 03:15:28 -0300
commit55174a28581c33c4b6d91066086a2ee7b5c663ea (patch)
treefedb78bf66dd114eedc358ca385cf5f01a65ae0e /lib/evaluators
parenta8cd08bfe473f01f245a4808e63809ed1cddc0e7 (diff)
downloadRNT-55174a28581c33c4b6d91066086a2ee7b5c663ea.tar.gz
RNT-55174a28581c33c4b6d91066086a2ee7b5c663ea.zip
bencode helpers between dicts and string maps
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