[m-rev.] for review: Correct status of partial instantiation support

Paul Bone paul at bone.id.au
Wed Mar 12 11:44:20 AEDT 2014


For review, does anyone know if there are more places throughout the
documentation that need correcting?  Thanks.

Branches: master, version-14.01-branch

---

Correct status of partial instantiation support

In (at least) two places we say that partial instantiation doesn't work or
isn't supported.  To be more correct it works to some extent but is
'experimental'.  Correcting this statement will confuse users of Mercury
less.  (It was pointed out to me by 1-2 people that this had confused them.)

doc/reference_manual.texi:
library/list.m:
    As above.
---
 doc/reference_manual.texi | 4 ++--
 library/list.m            | 6 +++++-
 2 files changed, 7 insertions(+), 3 deletions(-)

diff --git a/doc/reference_manual.texi b/doc/reference_manual.texi
index a7a34b2..d63f336 100644
--- a/doc/reference_manual.texi
+++ b/doc/reference_manual.texi
@@ -2541,8 +2541,8 @@ These two modes are enough for most functions and predicates.
 Nevertheless, Mercury's mode system is sufficiently
 expressive to handle more complex data-flow patterns,
 including those involving partially instantiated data structures.  
-(The current implementation does not handle
-partially instantiated data structures yet.)
+(Partially instantiated data structures are experimental in the current
+implementation.)
 
 For example, consider an
 interface to a database that associates data with keys, and provides
diff --git a/library/list.m b/library/list.m
index 102edb6..ce8c16d 100644
--- a/library/list.m
+++ b/library/list.m
@@ -35,7 +35,11 @@
 %-----------------------------------------------------------------------------%
 
     % Some declarations for complicated modes using lists.
-    % (Note that partial instantiation is not currently supported.)
+    %
+    % Note that partial instantiation is experimental.  In particular it
+    % does not work on the Erlang backend and that most existing code is
+    % not instantiation state polymorphic (such as the standard library
+    % itself).
 
 :- inst list_skel(I) ---> [] ; [I | list_skel(I)].
 :- inst list_skel == list_skel(free).
-- 
1.9.0




More information about the reviews mailing list