123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100(************************************************************************)(* * 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.StdopenPpx_hash_lib.Std.Hash.BuiltinopenPpx_compare_lib.Builtinlethash_fold_array=hash_fold_array_frozenmoduleNames=Ser_namesmoduleUniv=Ser_univopenUnivmoduleSorts=Ser_sortsopenSortsmoduleVariance=structtypet=[%import:UVars.Variance.t][@@derivingsexp,yojson,hash,compare]endmoduleInstance=structtypet=[%import:UVars.Instance.t]type_t=Instanceof(Quality.tarray*Level.tarray)[@@derivingsexp,yojson,hash,compare]let_instance_putinstance=Instance(UVars.Instance.to_arrayinstance)let_instance_get(Instanceinstance)=UVars.Instance.of_arrayinstancelett_of_sexpsexp=_instance_get(_t_of_sexpsexp)letsexp_of_tinstance=sexp_of__t(_instance_putinstance)letof_yojsonjson=Ppx_deriving_yojson_runtime.(_t_of_yojsonjson>|=_instance_get)letto_yojsonlevel=_t_to_yojson(_instance_putlevel)lethashi=hash__t(Instance(UVars.Instance.to_arrayi))lethash_fold_tsti=hash_fold__tst(Instance(UVars.Instance.to_arrayi))letcomparei1i2=compare__t(Instance(UVars.Instance.to_arrayi1))(Instance(UVars.Instance.to_arrayi2))endmoduleUContext=structmoduleI=structtypet=UVars.UContext.ttype_t=(Names.Name.tarray*Names.Name.tarray)*(Instance.t*Constraints.t)[@@derivingsexp,yojson,hash,compare]letto_t(un,cs)=UVars.UContext.makeuncsletof_tuc=UVars.UContext.(namesuc,(instanceuc,constraintsuc))endincludeSerType.Biject(I)endmoduleAbstractContext=structlethash_fold_array=hash_fold_array_frozenmoduleACPierceDef=structtypet=UVars.AbstractContext.ttype_t=(Names.Name.tarray*Names.Name.tarray)*Constraints.t[@@derivingsexp,yojson,hash,compare]endincludeSerType.Pierce(ACPierceDef)endtype'ain_universe_context=[%import:'aUVars.in_universe_context][@@derivingsexp]type'apuniverses=[%import:'aUVars.puniverses][@@derivingsexp,yojson,hash,compare]