aboutsummaryrefslogtreecommitdiffhomepage
diff options
context:
space:
mode:
authorGravatar Pierre-Marie Pédrot <pierre-marie.pedrot@inria.fr>2017-07-20 14:47:24 +0200
committerGravatar Pierre-Marie Pédrot <pierre-marie.pedrot@inria.fr>2017-07-20 14:47:24 +0200
commit47b699b7d72630d2edc512594a2c813d7fb2f7a6 (patch)
tree8a21fd8a7db9ad7de57c796fa49e3a8fbb7d173a
parent945d7bfa27b71137d86a4a46aeeced90d4b59303 (diff)
Documenting the purity / marshallability invariant of persistent states.
-rw-r--r--library/libobject.mli3
-rw-r--r--library/summary.mli2
2 files changed, 5 insertions, 0 deletions
diff --git a/library/libobject.mli b/library/libobject.mli
index 1a21ece2b..6f935bffe 100644
--- a/library/libobject.mli
+++ b/library/libobject.mli
@@ -56,6 +56,9 @@ open Mod_subst
rebuild the non volatile content of a section from the data
collected by the discharge function
+ Any type defined as a persistent object must be pure (e.g. no references) and
+ marshallable by the OCaml Marshal module (e.g. no closures).
+
*)
type 'a substitutivity =
diff --git a/library/summary.mli b/library/summary.mli
index a6ad49950..d093d95f2 100644
--- a/library/summary.mli
+++ b/library/summary.mli
@@ -14,6 +14,8 @@ type marshallable =
| `No (* Full data will be store in memory, e.g. for Undo *)
| `Shallow ] (* Only part of the data will be marshalled to a slave process *)
+(** Types of global Coq states. The ['a] type should be pure and marshallable by
+ the standard OCaml marshalling function. *)
type 'a summary_declaration = {
(** freeze_function [true] is for marshalling to disk.
* e.g. lazy must be forced *)