12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576777879808182(************************************************************************)(* * The Coq Proof Assistant / The Coq Development Team *)(* v * INRIA, CNRS and contributors - Copyright 1999-2018 *)(* <O___,, * (see CREDITS file for the list of authors) *)(* \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) *)(************************************************************************)(************************************************************************)(* Coq serialization API/Plugin *)(* Copyright 2016-2019 MINES ParisTech *)(* Written by: Emilio J. Gallego Arias *)(************************************************************************)(* Status: Very Experimental *)(************************************************************************)openSexplib.StdmoduleONames=NamesmoduleCEphemeron=Ser_cEphemeronmoduleNames=Ser_namesmoduleConstr=Ser_constrmoduleDeclarations=Ser_declarationsmoduleEntries=Ser_entriesmoduleCooking=Ser_cookingmoduleUniv=Ser_univ(* Side_effects *)typecertificate={certif_struc:Declarations.structure_body;certif_univs:Univ.ContextSet.t;}[@@derivingsexp]typeside_effect={from_env:certificateCEphemeron.key;seff_constant:Names.Constant.t;seff_body:Constr.tDeclarations.constant_body;}[@@derivingsexp]moduleSeffOrd=structtypet=side_effectletcomparee1e2=ONames.Constant.CanOrd.comparee1.seff_constante2.seff_constantlett_of_sexp=side_effect_of_sexpletsexp_of_t=sexp_of_side_effectendmoduleSeffSet=Set.Make(SeffOrd)moduleSerSeffSet=Ser_cSet.Make(SeffSet)(SeffOrd)type_t={seff:side_effectlist;elts:SerSeffSet.t}[@@derivingsexp]type_private_constants=_t[@@derivingsexp]typeprivate_constants=Safe_typing.private_constantsletsexp_of_private_constantsx=sexp_of__private_constants(Obj.magicx)letprivate_constants_of_sexpx=Obj.magic(_private_constants_of_sexpx)(*
type 'a effect_entry =
[%import: 'a Safe_typing.effect_entry]
[@@deriving sexp_of]
(* XXX: Typical GADT Problem *)
let _effect_entry_of_sexp (_f : Sexp.t -> 'a) (x : Sexp.t) : 'a effect_entry =
let open Sexp in
match x with
| Atom "PureEntry" ->
Obj.magic PureEntry
| Atom "EffectEntry" ->
Obj.magic EffectEntry
| _ ->
Sexplib.Conv_error.no_variant_match ()
*)typeglobal_declaration=[%import:Safe_typing.global_declaration][@@derivingsexp]