forked from rocq-archive/coq-serapi
-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathser_evar.ml
37 lines (28 loc) · 1.56 KB
/
ser_evar.ml
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
(************************************************************************)
(* v * The Coq Proof Assistant / The Coq Development Team *)
(* <O___,, * INRIA - CNRS - LIX - LRI - PPS - Copyright 1999-2016 *)
(* \VV/ **************************************************************)
(* // * This file is distributed under the terms of the *)
(* * GNU Lesser General Public License Version 2.1 *)
(************************************************************************)
(************************************************************************)
(* Coq serialization API/Plugin *)
(* Copyright 2016-2017 MINES ParisTech *)
(* Written by: Emilio J. Gallego Arias *)
(************************************************************************)
(* Status: Very Experimental *)
(************************************************************************)
open Sexplib.Std
(* Private *)
module Self = struct
type t = [%import: Evar.t]
type _t = Ser_Evar of int [@@deriving sexp,yojson]
let _t_put evar = Ser_Evar (Evar.repr evar)
let _t_get (Ser_Evar evar) = Evar.unsafe_of_int evar
let t_of_sexp sexp = _t_get (_t_of_sexp sexp)
let sexp_of_t evar = sexp_of__t (_t_put evar)
let of_yojson json = Ppx_deriving_yojson_runtime.(_t_of_yojson json >|= _t_get)
let to_yojson level = _t_to_yojson (_t_put level)
end
include Self
module Set = Ser_cSet.Make(Evar.Set)(Self)