12345678910111213141516171819202122232425262728293031323334353637383940414243(************************************************************************)(* * The Coq Proof Assistant / The Coq Development Team *)(* v * Copyright INRIA, CNRS and contributors *)(* <O___,, * (see version control and CREDITS file for authors & dates) *)(* VV/ **************************************************************)(* // * This file is distributed under the terms of the *)(* * GNU Lesser General Public License Version 2.1 *)(* * (see LICENSE file for the text of the license) *)(************************************************************************)(************************************************************************)(* SerAPI: Coq interaction protocol with bidirectional serialization *)(************************************************************************)(* Copyright 2016-2019 MINES ParisTech -- License LGPL 2.1+ *)(* Copyright 2019-2023 Inria -- License LGPL 2.1+ *)(* Written by: Emilio J. Gallego Arias and others *)(************************************************************************)openSexplib.Std(* XXX: Move to ser_cmap *)type'acstring_map='aCString.Map.tletfrom_bindingsbl=letopenCString.MapinList.fold_left(funm(k,v)->addkvm)emptyblletcstring_map_of_sexpfs=lets_f=Sexplib.Conv.pair_of_sexpstring_of_sexpfinletbl=list_of_sexps_fsinfrom_bindingsblletsexp_of_cstring_mapfm=lets_f=Sexplib.Conv.sexp_of_pairsexp_of_stringfinletl=CString.Map.bindingsminsexp_of_lists_fltypetreenode=[%import:Profile_tactic.treenode[@withCString.Map.t:=cstring_map;CString.Map.key:=string]][@@derivingsexp]