Author: larry
Date: Wed Mar  7 16:18:15 2007
New Revision: 14315

Modified:
   doc/trunk/design/syn/S03.pod

Log:
made "my Any $x; $x := [1,2,3]" a little dwammy (do what audreyt++ means :)


Modified: doc/trunk/design/syn/S03.pod
==============================================================================
--- doc/trunk/design/syn/S03.pod        (original)
+++ doc/trunk/design/syn/S03.pod        Wed Mar  7 16:18:15 2007
@@ -12,9 +12,9 @@
 
   Maintainer: Larry Wall <[EMAIL PROTECTED]>
   Date: 8 Mar 2004
-  Last Modified: 28 Feb 2007
+  Last Modified: 7 Mar 2007
   Number: 3
-  Version: 103
+  Version: 104
 
 =head1 Overview
 
@@ -1001,7 +1001,17 @@
 true in the above example.
 
 The binding fails if the type of the variable being bound is sufficiently
-inconsistent with the type of the current declaration.
+inconsistent with the type of the current declaration.  Strictly speaking,
+any variation on
+
+    my Any $x;
+    $x := [1,2,3];
+
+should fail because the type being bound is not consistent with
+C<Scalar of Any>, but since the C<Any> type is not a real instantiable
+type but a generic (non)constraint, and C<Scalar of Any> is sort of
+a double non-constraint similar to C<Any>, we treat this situation
+specially as the equivalent of binding to a typeless variable.
 
 =item *
 
@@ -1009,7 +1019,9 @@
 
     ::=
 
-This does the same as C<:=> except it does it at compile time.
+This does the same as C<:=> except it does it at compile time.  (This implies
+that the expression on the right is also evaluated at compile time; it does
+not bind a lazy thunk.)
 
 =item *
 

Reply via email to