Index: doc/user/user.tex
===================================================================
--- doc/user/user.tex	(revision 244335bac9fe48993091c4a55d03642bd67e9a62)
+++ doc/user/user.tex	(revision 16d862d1f4c7c71a691ebd6ebddf7bf111bc5d11)
@@ -11,6 +11,6 @@
 %% Created On       : Wed Apr  6 14:53:29 2016
 %% Last Modified By : Peter A. Buhr
-%% Last Modified On : Mon May  4 12:09:44 2026
-%% Update Count     : 7440
+%% Last Modified On : Tue Jun 23 20:56:16 2026
+%% Update Count     : 7474
 %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
 
@@ -3661,5 +3661,5 @@
 allowable calls are:
 \begin{cquote}
-\begin{tabular}{@{}ll@{}}
+\begin{tabular}{@{}l@{\hspace{80pt}}l@{}}
 \textbf{positional arguments} & \textbf{empty arguments} \\
 \begin{cfa}
@@ -3687,4 +3687,34 @@
 Here the missing arguments are inserted from the default values in the parameter list.
 The compiler rewrites missing default values into explicit positional arguments.
+While it is possible to put default parameters before positional, it is always necessary to use the ©?© for ommision.
+\begin{cfa}
+void f( int x ®= 10®, int y );
+f( 4, 4 );
+f( ?, 4 )
+\end{cfa}
+
+The parameter default-expression can be evaluated at compile (C) or runtime time (\CC) in the declaration context.
+\begin{cfa}
+enum { y = 10 };
+void f( int x ®= y / 2® );		§\C{// C static declaration-site expression-computation}§
+f();							§\C{// rewrite \(\Rightarrow\) f( 5 )}§
+int y = 200, z = 100;
+void g( int x ®= y / z® );		§\C{// \CFA/\,\CC dynamic declaration-site expression-computation}§
+g();							§\C{// rewrite \(\Rightarrow\) g( 2 )}§
+\end{cfa}
+In \CFA, it is possible to have the default-expression evaluated at the call site using a trait.
+\begin{cfa}
+forall( | { int y; int z; } )	§\C{// define local trait for h}§
+void h( int x = y / z );		§\C{// \CFA dynamic call-site expression-computation}§
+void foo() {
+	h();						§\C{// rewrite using globals \(\Rightarrow\) h( 2 )}§
+	int y = 50, z = 5;
+	h();						§\C{// rewrite using locals \(\Rightarrow\) h( 10 )}§
+	y = 25;
+	h();						§\C{// rewrite using locals \(\Rightarrow\) h( 5 )}§
+}
+\end{cfa}
+Routine ©h©'s trait requires variables ©y© and ©z© in the call environment, which are used to compute the default initialization.
+
 The advantages of default values are:
 \begin{itemize}
@@ -3808,5 +3838,5 @@
 
 \CFA named and default arguments are backwards compatible with C.
-\Index*[C++]{\CC{}} only supports default parameters;
+\Index*[C++]{\CC{}} only supports left to right default parameters;
 \Index*{Ada} supports both named and default parameters.
 
