aboutsummaryrefslogtreecommitdiffhomepage
path: root/library/summary.mli
diff options
context:
space:
mode:
authorGravatar Enrico Tassi <Enrico.Tassi@inria.fr>2016-09-05 16:23:09 +0200
committerGravatar Enrico Tassi <Enrico.Tassi@inria.fr>2016-09-05 16:37:00 +0200
commit6f393734e54146c4d26325aea006368380d97280 (patch)
treedb447c39ec86206fe8da06692b279f22a6c1b1cc /library/summary.mli
parent3cf399dd17759cc0258295045742f1b50e376d5a (diff)
Summary: simpler API for process-local storage
Diffstat (limited to 'library/summary.mli')
-rw-r--r--library/summary.mli11
1 files changed, 11 insertions, 0 deletions
diff --git a/library/summary.mli b/library/summary.mli
index 27889cab2..1b57613cb 100644
--- a/library/summary.mli
+++ b/library/summary.mli
@@ -42,6 +42,17 @@ val declare_summary : string -> 'a summary_declaration -> unit
val ref : ?freeze:(marshallable -> 'a -> 'a) -> name:string -> 'a -> 'a ref
+(* As [ref] but the value is local to a process, i.e. not sent to, say, proof
+ * workers. It is useful to implement a local cache for example. *)
+module Local : sig
+
+ type 'a local_ref
+ val ref : ?freeze:('a -> 'a) -> name:string -> 'a -> 'a local_ref
+ val (:=) : 'a local_ref -> 'a -> unit
+ val (!) : 'a local_ref -> 'a
+
+end
+
(** Special name for the summary of ML modules. This summary entry is
special because its unfreeze may load ML code and hence add summary
entries. Thus is has to be recognizable, and handled appropriately *)