[latex3-commits] [l3svn] r7033 - Move \bool_lazy_... functions from l3candidates to l3prg (see #217)

noreply at latex-project.org noreply at latex-project.org
Wed Mar 29 15:53:35 CEST 2017


Author: bruno
Date: 2017-03-29 15:53:34 +0200 (Wed, 29 Mar 2017)
New Revision: 7033

Modified:
   trunk/l3kernel/l3candidates.dtx
   trunk/l3kernel/l3prg.dtx
   trunk/l3kernel/testfiles/m3expl001.luatex.tlg
   trunk/l3kernel/testfiles/m3expl001.ptex.tlg
   trunk/l3kernel/testfiles/m3expl001.tlg
   trunk/l3kernel/testfiles/m3expl001.uptex.tlg
   trunk/l3kernel/testfiles/m3expl001.xetex.tlg
   trunk/l3kernel/testfiles/m3expl003.luatex.tlg
   trunk/l3kernel/testfiles/m3expl003.ptex.tlg
   trunk/l3kernel/testfiles/m3expl003.tlg
   trunk/l3kernel/testfiles/m3expl003.uptex.tlg
   trunk/l3kernel/testfiles/m3expl003.xetex.tlg
Log:
Move \bool_lazy_... functions from l3candidates to l3prg (see #217)

The next step, in a few weeks/months, will be to make the
boolean expression parser eager rather than lazy.


Modified: trunk/l3kernel/l3candidates.dtx
===================================================================
--- trunk/l3kernel/l3candidates.dtx	2017-03-29 13:29:20 UTC (rev 7032)
+++ trunk/l3kernel/l3candidates.dtx	2017-03-29 13:53:34 UTC (rev 7033)
@@ -463,85 +463,6 @@
 %   space might be removed as well.
 % \end{function}
 %
-% \section{Additions to \pkg{l3prg}}
-%
-% Minimal (lazy) evaluation can be obtained using the conditionals
-% \cs{bool_lazy_all:nTF}, \cs{bool_lazy_and:nnTF}, \cs{bool_lazy_any:nTF}, or
-% \cs{bool_lazy_or:nnTF}, which only evaluate their boolean expression
-% arguments when they are needed to determine the resulting truth
-% value.  For example, when evaluating the boolean expression
-% \begin{verbatim}
-%     \bool_lazy_and_p:nn
-%       {
-%         \bool_lazy_any_p:n
-%           {
-%             { \int_compare_p:n { 2 = 3 } }
-%             { \int_compare_p:n { 4 <= 4 } }
-%             { \int_compare_p:n { 1 = \error } } % is skipped
-%           }
-%       }
-%       { ! \int_compare_p:n { 2 = 4 } }
-% \end{verbatim}
-% the line marked with |is skipped| is not expanded because the result
-% of \cs{bool_lazy_any_p:n} is known once the second boolean expression is
-% found to be logically \texttt{true}.  On the other hand, the last
-% line is expanded because its logical value is needed to determine the
-% result of \cs{bool_lazy_and_p:nn}.
-%   
-% \begin{function}[EXP, pTF, added = 2015-11-15]{\bool_lazy_all:n}
-%   \begin{syntax}
-%     \cs{bool_lazy_all_p:n} \{ \Arg{boolexpr_1} \Arg{boolexpr_2} $\cdots$ \Arg{boolexpr_N} \}
-%     \cs{bool_lazy_all:nTF} \{ \Arg{boolexpr_1} \Arg{boolexpr_2} $\cdots$ \Arg{boolexpr_N} \} \Arg{true code} \Arg{false code}
-%   \end{syntax}
-%   Implements the \enquote{And} operation on the \meta{boolean
-%   expressions}, hence is \texttt{true} if all of them are
-%   \texttt{true} and \texttt{false} if any of them is \texttt{false}.
-%   Contrarily to the infix operator |&&|, only the \meta{boolean
-%   expressions} which are needed to determine the result of
-%   \cs{bool_lazy_all:nTF} will be evaluated.  See also \cs{bool_lazy_and:nnTF}
-%   when there are only two \meta{boolean expressions}.
-% \end{function}
-%
-% \begin{function}[EXP, pTF, added = 2015-11-15]{\bool_lazy_and:nn}
-%   \begin{syntax}
-%     \cs{bool_lazy_and_p:nn} \Arg{boolexpr_1} \Arg{boolexpr_2}
-%     \cs{bool_lazy_and:nnTF} \Arg{boolexpr_1} \Arg{boolexpr_2} \Arg{true code} \Arg{false code}
-%   \end{syntax}
-%   Implements the \enquote{And} operation between two boolean
-%   expressions, hence is \texttt{true} if both are \texttt{true}.
-%   Contrarily to the infix operator |&&|, the \meta{boolexpr_2} will
-%   only be evaluated if it is needed to determine the result of
-%   \cs{bool_lazy_and:nnTF}.  See also \cs{bool_lazy_all:nTF} when there are more
-%   than two \meta{boolean expressions}.
-% \end{function}
-%
-% \begin{function}[EXP, pTF, added = 2015-11-15]{\bool_lazy_any:n}
-%   \begin{syntax}
-%     \cs{bool_lazy_any_p:n} \{ \Arg{boolexpr_1} \Arg{boolexpr_2} $\cdots$ \Arg{boolexpr_N} \}
-%     \cs{bool_lazy_any:nTF} \{ \Arg{boolexpr_1} \Arg{boolexpr_2} $\cdots$ \Arg{boolexpr_N} \} \Arg{true code} \Arg{false code}
-%   \end{syntax}
-%   Implements the \enquote{Or} operation on the \meta{boolean
-%   expressions}, hence is \texttt{true} if any of them is
-%   \texttt{true} and \texttt{false} if all of them are \texttt{false}.
-%   Contrarily to the infix operator \verb"||", only the \meta{boolean
-%   expressions} which are needed to determine the result of
-%   \cs{bool_lazy_any:nTF} will be evaluated.  See also \cs{bool_lazy_or:nnTF}
-%   when there are only two \meta{boolean expressions}.
-% \end{function}
-%
-% \begin{function}[EXP, pTF, added = 2015-11-15]{\bool_lazy_or:nn}
-%   \begin{syntax}
-%     \cs{bool_lazy_or_p:nn} \Arg{boolexpr_1} \Arg{boolexpr_2}
-%     \cs{bool_lazy_or:nnTF} \Arg{boolexpr_1} \Arg{boolexpr_2} \Arg{true code} \Arg{false code}
-%   \end{syntax}
-%   Implements the \enquote{Or} operation between two boolean
-%   expressions, hence is \texttt{true} if either one is \texttt{true}.
-%   Contrarily to the infix operator \verb"||", the \meta{boolexpr_2}
-%   will only be evaluated if it is needed to determine the result of
-%   \cs{bool_lazy_or:nnTF}.  See also \cs{bool_lazy_any:nTF} when there are more
-%   than two \meta{boolean expressions}.
-% \end{function}
-%
 % \section{Additions to \pkg{l3prop}}
 %
 % \begin{function}[EXP]{\prop_count:N, \prop_count:c}
@@ -2419,74 +2340,6 @@
 % \end{macro}
 % \end{macro}
 %
-% \subsection{Additions to \pkg{l3prg}}
-%
-%    \begin{macrocode}
-%<@@=bool>
-%    \end{macrocode}
-%
-% \begin{macro}[pTF]{\bool_lazy_all:n}
-% \begin{macro}[aux]{\@@_lazy_all:n}
-%   Go through the list of expressions, stopping whenever an expression
-%   is \texttt{false}.  If the end is reached without finding any
-%   \texttt{false} expression, then the result is \texttt{true}.
-%    \begin{macrocode}
-\prg_new_conditional:Npnn \bool_lazy_all:n #1 { p , T , F , TF }
-  { \@@_lazy_all:n #1 \q_recursion_tail \q_recursion_stop }
-\cs_new:Npn \@@_lazy_all:n #1
-  {
-    \quark_if_recursion_tail_stop_do:nn {#1} { \prg_return_true: }
-    \bool_if:nF {#1}
-      { \use_i_delimit_by_q_recursion_stop:nw { \prg_return_false: } }
-    \@@_lazy_all:n
-  }
-%    \end{macrocode}
-% \end{macro}
-% \end{macro}
-%
-% \begin{macro}[pTF]{\bool_lazy_and:nn}
-%   Only evaluate the second expression if the first is \texttt{true}.
-%    \begin{macrocode}
-\prg_new_conditional:Npnn \bool_lazy_and:nn #1#2 { p , T , F , TF }
-  {
-    \bool_if:nTF {#1}
-      { \bool_if:nTF {#2} { \prg_return_true: } { \prg_return_false: } }
-      { \prg_return_false: }
-  }
-%    \end{macrocode}
-% \end{macro}
-%
-% \begin{macro}[pTF]{\bool_lazy_any:n}
-% \begin{macro}[aux]{\@@_lazy_any:n}
-%   Go through the list of expressions, stopping whenever an expression
-%   is \texttt{true}.  If the end is reached without finding any
-%   \texttt{true} expression, then the result is \texttt{false}.
-%    \begin{macrocode}
-\prg_new_conditional:Npnn \bool_lazy_any:n #1 { p , T , F , TF }
-  { \@@_lazy_any:n #1 \q_recursion_tail \q_recursion_stop }
-\cs_new:Npn \@@_lazy_any:n #1
-  {
-    \quark_if_recursion_tail_stop_do:nn {#1} { \prg_return_false: }
-    \bool_if:nT {#1}
-      { \use_i_delimit_by_q_recursion_stop:nw { \prg_return_true: } }
-    \@@_lazy_any:n
-  }
-%    \end{macrocode}
-% \end{macro}
-% \end{macro}
-%
-% \begin{macro}[pTF]{\bool_lazy_or:nn}
-%   Only evaluate the second expression if the first is \texttt{false}.
-%    \begin{macrocode}
-\prg_new_conditional:Npnn \bool_lazy_or:nn #1#2 { p , T , F , TF }
-  {
-    \bool_if:nTF {#1}
-      { \prg_return_true: }
-      { \bool_if:nTF {#2} { \prg_return_true: } { \prg_return_false: } }
-  }
-%    \end{macrocode}
-% \end{macro}
-%
 % \subsection{Additions to \pkg{l3prop}}
 %
 %    \begin{macrocode}

Modified: trunk/l3kernel/l3prg.dtx
===================================================================
--- trunk/l3kernel/l3prg.dtx	2017-03-29 13:29:20 UTC (rev 7032)
+++ trunk/l3kernel/l3prg.dtx	2017-03-29 13:53:34 UTC (rev 7033)
@@ -382,6 +382,29 @@
 %   \verb"||" appear as (unbraced) arguments of some predicates.
 % \end{texnote}
 %
+% Minimal (lazy) evaluation can be obtained using the conditionals
+% \cs{bool_lazy_all:nTF}, \cs{bool_lazy_and:nnTF}, \cs{bool_lazy_any:nTF}, or
+% \cs{bool_lazy_or:nnTF}, which only evaluate their boolean expression
+% arguments when they are needed to determine the resulting truth
+% value.  For example, when evaluating the boolean expression
+% \begin{verbatim}
+%     \bool_lazy_and_p:nn
+%       {
+%         \bool_lazy_any_p:n
+%           {
+%             { \int_compare_p:n { 2 = 3 } }
+%             { \int_compare_p:n { 4 <= 4 } }
+%             { \int_compare_p:n { 1 = \error } } % skipped
+%           }
+%       }
+%       { ! \int_compare_p:n { 2 = 4 } }
+% \end{verbatim}
+% the line marked with |skipped| is not expanded because the result
+% of \cs{bool_lazy_any_p:n} is known once the second boolean expression is
+% found to be logically \texttt{true}.  On the other hand, the last
+% line is expanded because its logical value is needed to determine the
+% result of \cs{bool_lazy_and_p:nn}.
+%
 % \begin{function}[EXP, pTF, updated = 2012-07-08]{\bool_if:n}
 %   \begin{syntax}
 %     \cs{bool_if_p:n} \Arg{boolean expression}
@@ -395,7 +418,61 @@
 %   |!| (\enquote{Not}) and parentheses.  The logical Not applies to
 %   the next predicate or group.
 % \end{function}
+%   
+% \begin{function}[EXP, pTF, added = 2015-11-15]{\bool_lazy_all:n}
+%   \begin{syntax}
+%     \cs{bool_lazy_all_p:n} \{ \Arg{boolexpr_1} \Arg{boolexpr_2} $\cdots$ \Arg{boolexpr_N} \}
+%     \cs{bool_lazy_all:nTF} \{ \Arg{boolexpr_1} \Arg{boolexpr_2} $\cdots$ \Arg{boolexpr_N} \} \Arg{true code} \Arg{false code}
+%   \end{syntax}
+%   Implements the \enquote{And} operation on the \meta{boolean
+%   expressions}, hence is \texttt{true} if all of them are
+%   \texttt{true} and \texttt{false} if any of them is \texttt{false}.
+%   Contrarily to the infix operator |&&|, only the \meta{boolean
+%   expressions} which are needed to determine the result of
+%   \cs{bool_lazy_all:nTF} will be evaluated.  See also \cs{bool_lazy_and:nnTF}
+%   when there are only two \meta{boolean expressions}.
+% \end{function}
 %
+% \begin{function}[EXP, pTF, added = 2015-11-15]{\bool_lazy_and:nn}
+%   \begin{syntax}
+%     \cs{bool_lazy_and_p:nn} \Arg{boolexpr_1} \Arg{boolexpr_2}
+%     \cs{bool_lazy_and:nnTF} \Arg{boolexpr_1} \Arg{boolexpr_2} \Arg{true code} \Arg{false code}
+%   \end{syntax}
+%   Implements the \enquote{And} operation between two boolean
+%   expressions, hence is \texttt{true} if both are \texttt{true}.
+%   Contrarily to the infix operator |&&|, the \meta{boolexpr_2} will
+%   only be evaluated if it is needed to determine the result of
+%   \cs{bool_lazy_and:nnTF}.  See also \cs{bool_lazy_all:nTF} when there are more
+%   than two \meta{boolean expressions}.
+% \end{function}
+%
+% \begin{function}[EXP, pTF, added = 2015-11-15]{\bool_lazy_any:n}
+%   \begin{syntax}
+%     \cs{bool_lazy_any_p:n} \{ \Arg{boolexpr_1} \Arg{boolexpr_2} $\cdots$ \Arg{boolexpr_N} \}
+%     \cs{bool_lazy_any:nTF} \{ \Arg{boolexpr_1} \Arg{boolexpr_2} $\cdots$ \Arg{boolexpr_N} \} \Arg{true code} \Arg{false code}
+%   \end{syntax}
+%   Implements the \enquote{Or} operation on the \meta{boolean
+%   expressions}, hence is \texttt{true} if any of them is
+%   \texttt{true} and \texttt{false} if all of them are \texttt{false}.
+%   Contrarily to the infix operator \verb"||", only the \meta{boolean
+%   expressions} which are needed to determine the result of
+%   \cs{bool_lazy_any:nTF} will be evaluated.  See also \cs{bool_lazy_or:nnTF}
+%   when there are only two \meta{boolean expressions}.
+% \end{function}
+%
+% \begin{function}[EXP, pTF, added = 2015-11-15]{\bool_lazy_or:nn}
+%   \begin{syntax}
+%     \cs{bool_lazy_or_p:nn} \Arg{boolexpr_1} \Arg{boolexpr_2}
+%     \cs{bool_lazy_or:nnTF} \Arg{boolexpr_1} \Arg{boolexpr_2} \Arg{true code} \Arg{false code}
+%   \end{syntax}
+%   Implements the \enquote{Or} operation between two boolean
+%   expressions, hence is \texttt{true} if either one is \texttt{true}.
+%   Contrarily to the infix operator \verb"||", the \meta{boolexpr_2}
+%   will only be evaluated if it is needed to determine the result of
+%   \cs{bool_lazy_or:nnTF}.  See also \cs{bool_lazy_any:nTF} when there are more
+%   than two \meta{boolean expressions}.
+% \end{function}
+%
 % \begin{function}[EXP, updated = 2012-07-08]{\bool_not_p:n}
 %   \begin{syntax}
 %      \cs{bool_not_p:n} \Arg{boolean expression}
@@ -1238,6 +1315,72 @@
 % \end{macro}
 % \end{macro}
 %
+% \begin{macro}[pTF]{\bool_lazy_all:n}
+% \begin{macro}[aux]{\@@_lazy_all:n}
+% \UnitTested
+%   Go through the list of expressions, stopping whenever an expression
+%   is \texttt{false}.  If the end is reached without finding any
+%   \texttt{false} expression, then the result is \texttt{true}.
+%    \begin{macrocode}
+\prg_new_conditional:Npnn \bool_lazy_all:n #1 { p , T , F , TF }
+  { \@@_lazy_all:n #1 \q_recursion_tail \q_recursion_stop }
+\cs_new:Npn \@@_lazy_all:n #1
+  {
+    \quark_if_recursion_tail_stop_do:nn {#1} { \prg_return_true: }
+    \bool_if:nF {#1}
+      { \use_i_delimit_by_q_recursion_stop:nw { \prg_return_false: } }
+    \@@_lazy_all:n
+  }
+%    \end{macrocode}
+% \end{macro}
+% \end{macro}
+%
+% \begin{macro}[pTF]{\bool_lazy_and:nn}
+% \UnitTested
+%   Only evaluate the second expression if the first is \texttt{true}.
+%    \begin{macrocode}
+\prg_new_conditional:Npnn \bool_lazy_and:nn #1#2 { p , T , F , TF }
+  {
+    \bool_if:nTF {#1}
+      { \bool_if:nTF {#2} { \prg_return_true: } { \prg_return_false: } }
+      { \prg_return_false: }
+  }
+%    \end{macrocode}
+% \end{macro}
+%
+% \begin{macro}[pTF]{\bool_lazy_any:n}
+% \begin{macro}[aux]{\@@_lazy_any:n}
+% \UnitTested
+%   Go through the list of expressions, stopping whenever an expression
+%   is \texttt{true}.  If the end is reached without finding any
+%   \texttt{true} expression, then the result is \texttt{false}.
+%    \begin{macrocode}
+\prg_new_conditional:Npnn \bool_lazy_any:n #1 { p , T , F , TF }
+  { \@@_lazy_any:n #1 \q_recursion_tail \q_recursion_stop }
+\cs_new:Npn \@@_lazy_any:n #1
+  {
+    \quark_if_recursion_tail_stop_do:nn {#1} { \prg_return_false: }
+    \bool_if:nT {#1}
+      { \use_i_delimit_by_q_recursion_stop:nw { \prg_return_true: } }
+    \@@_lazy_any:n
+  }
+%    \end{macrocode}
+% \end{macro}
+% \end{macro}
+%
+% \begin{macro}[pTF]{\bool_lazy_or:nn}
+% \UnitTested
+%   Only evaluate the second expression if the first is \texttt{false}.
+%    \begin{macrocode}
+\prg_new_conditional:Npnn \bool_lazy_or:nn #1#2 { p , T , F , TF }
+  {
+    \bool_if:nTF {#1}
+      { \prg_return_true: }
+      { \bool_if:nTF {#2} { \prg_return_true: } { \prg_return_false: } }
+  }
+%    \end{macrocode}
+% \end{macro}
+%
 % \begin{macro}{\bool_not_p:n}
 % \UnitTested
 %   The Not variant just reverses the outcome of \cs{bool_if_p:n}. Can
@@ -1252,7 +1395,7 @@
 % \begin{macro}{\bool_xor_p:nn}
 % \UnitTested
 %    Exclusive or. If the boolean expressions have same truth value,
-%    return false, otherwise return true.
+%    return \texttt{false}, otherwise return \texttt{true}.
 %    \begin{macrocode}
 \cs_new:Npn \bool_xor_p:nn #1#2
   {

Modified: trunk/l3kernel/testfiles/m3expl001.luatex.tlg
===================================================================
--- trunk/l3kernel/testfiles/m3expl001.luatex.tlg	2017-03-29 13:29:20 UTC (rev 7032)
+++ trunk/l3kernel/testfiles/m3expl001.luatex.tlg	2017-03-29 13:53:34 UTC (rev 7033)
@@ -1812,6 +1812,24 @@
 Defining \__bool_eval_skip_to_end_auxi:Nw on line ...
 Defining \__bool_eval_skip_to_end_auxii:Nw on line ...
 Defining \__bool_eval_skip_to_end_auxiii:Nw on line ...
+Defining \bool_lazy_all_p:n on line ...
+Defining \bool_lazy_all:nT on line ...
+Defining \bool_lazy_all:nF on line ...
+Defining \bool_lazy_all:nTF on line ...
+Defining \__bool_lazy_all:n on line ...
+Defining \bool_lazy_and_p:nn on line ...
+Defining \bool_lazy_and:nnT on line ...
+Defining \bool_lazy_and:nnF on line ...
+Defining \bool_lazy_and:nnTF on line ...
+Defining \bool_lazy_any_p:n on line ...
+Defining \bool_lazy_any:nT on line ...
+Defining \bool_lazy_any:nF on line ...
+Defining \bool_lazy_any:nTF on line ...
+Defining \__bool_lazy_any:n on line ...
+Defining \bool_lazy_or_p:nn on line ...
+Defining \bool_lazy_or:nnT on line ...
+Defining \bool_lazy_or:nnF on line ...
+Defining \bool_lazy_or:nnTF on line ...
 Defining \bool_not_p:n on line ...
 Defining \bool_xor_p:nn on line ...
 Defining \bool_while_do:Nn on line ...
@@ -4790,24 +4808,6 @@
 Defining \msg_expandable_error:nnff on line ...
 Defining \msg_expandable_error:nnf on line ...
 Defining \__msg_expandable_error_module:nn on line ...
-Defining \bool_lazy_all_p:n on line ...
-Defining \bool_lazy_all:nT on line ...
-Defining \bool_lazy_all:nF on line ...
-Defining \bool_lazy_all:nTF on line ...
-Defining \__bool_lazy_all:n on line ...
-Defining \bool_lazy_and_p:nn on line ...
-Defining \bool_lazy_and:nnT on line ...
-Defining \bool_lazy_and:nnF on line ...
-Defining \bool_lazy_and:nnTF on line ...
-Defining \bool_lazy_any_p:n on line ...
-Defining \bool_lazy_any:nT on line ...
-Defining \bool_lazy_any:nF on line ...
-Defining \bool_lazy_any:nTF on line ...
-Defining \__bool_lazy_any:n on line ...
-Defining \bool_lazy_or_p:nn on line ...
-Defining \bool_lazy_or:nnT on line ...
-Defining \bool_lazy_or:nnF on line ...
-Defining \bool_lazy_or:nnTF on line ...
 Defining \prop_count:N on line ...
 Defining \__prop_count:nn on line ...
 Defining \prop_count:c on line ...

Modified: trunk/l3kernel/testfiles/m3expl001.ptex.tlg
===================================================================
--- trunk/l3kernel/testfiles/m3expl001.ptex.tlg	2017-03-29 13:29:20 UTC (rev 7032)
+++ trunk/l3kernel/testfiles/m3expl001.ptex.tlg	2017-03-29 13:53:34 UTC (rev 7033)
@@ -1544,6 +1544,24 @@
 Defining \__bool_eval_skip_to_end_auxi:Nw on line ...
 Defining \__bool_eval_skip_to_end_auxii:Nw on line ...
 Defining \__bool_eval_skip_to_end_auxiii:Nw on line ...
+Defining \bool_lazy_all_p:n on line ...
+Defining \bool_lazy_all:nT on line ...
+Defining \bool_lazy_all:nF on line ...
+Defining \bool_lazy_all:nTF on line ...
+Defining \__bool_lazy_all:n on line ...
+Defining \bool_lazy_and_p:nn on line ...
+Defining \bool_lazy_and:nnT on line ...
+Defining \bool_lazy_and:nnF on line ...
+Defining \bool_lazy_and:nnTF on line ...
+Defining \bool_lazy_any_p:n on line ...
+Defining \bool_lazy_any:nT on line ...
+Defining \bool_lazy_any:nF on line ...
+Defining \bool_lazy_any:nTF on line ...
+Defining \__bool_lazy_any:n on line ...
+Defining \bool_lazy_or_p:nn on line ...
+Defining \bool_lazy_or:nnT on line ...
+Defining \bool_lazy_or:nnF on line ...
+Defining \bool_lazy_or:nnTF on line ...
 Defining \bool_not_p:n on line ...
 Defining \bool_xor_p:nn on line ...
 Defining \bool_while_do:Nn on line ...
@@ -4753,24 +4771,6 @@
 Defining \msg_expandable_error:nnff on line ...
 Defining \msg_expandable_error:nnf on line ...
 Defining \__msg_expandable_error_module:nn on line ...
-Defining \bool_lazy_all_p:n on line ...
-Defining \bool_lazy_all:nT on line ...
-Defining \bool_lazy_all:nF on line ...
-Defining \bool_lazy_all:nTF on line ...
-Defining \__bool_lazy_all:n on line ...
-Defining \bool_lazy_and_p:nn on line ...
-Defining \bool_lazy_and:nnT on line ...
-Defining \bool_lazy_and:nnF on line ...
-Defining \bool_lazy_and:nnTF on line ...
-Defining \bool_lazy_any_p:n on line ...
-Defining \bool_lazy_any:nT on line ...
-Defining \bool_lazy_any:nF on line ...
-Defining \bool_lazy_any:nTF on line ...
-Defining \__bool_lazy_any:n on line ...
-Defining \bool_lazy_or_p:nn on line ...
-Defining \bool_lazy_or:nnT on line ...
-Defining \bool_lazy_or:nnF on line ...
-Defining \bool_lazy_or:nnTF on line ...
 Defining \prop_count:N on line ...
 Defining \__prop_count:nn on line ...
 Defining \prop_count:c on line ...

Modified: trunk/l3kernel/testfiles/m3expl001.tlg
===================================================================
--- trunk/l3kernel/testfiles/m3expl001.tlg	2017-03-29 13:29:20 UTC (rev 7032)
+++ trunk/l3kernel/testfiles/m3expl001.tlg	2017-03-29 13:53:34 UTC (rev 7033)
@@ -1544,6 +1544,24 @@
 Defining \__bool_eval_skip_to_end_auxi:Nw on line ...
 Defining \__bool_eval_skip_to_end_auxii:Nw on line ...
 Defining \__bool_eval_skip_to_end_auxiii:Nw on line ...
+Defining \bool_lazy_all_p:n on line ...
+Defining \bool_lazy_all:nT on line ...
+Defining \bool_lazy_all:nF on line ...
+Defining \bool_lazy_all:nTF on line ...
+Defining \__bool_lazy_all:n on line ...
+Defining \bool_lazy_and_p:nn on line ...
+Defining \bool_lazy_and:nnT on line ...
+Defining \bool_lazy_and:nnF on line ...
+Defining \bool_lazy_and:nnTF on line ...
+Defining \bool_lazy_any_p:n on line ...
+Defining \bool_lazy_any:nT on line ...
+Defining \bool_lazy_any:nF on line ...
+Defining \bool_lazy_any:nTF on line ...
+Defining \__bool_lazy_any:n on line ...
+Defining \bool_lazy_or_p:nn on line ...
+Defining \bool_lazy_or:nnT on line ...
+Defining \bool_lazy_or:nnF on line ...
+Defining \bool_lazy_or:nnTF on line ...
 Defining \bool_not_p:n on line ...
 Defining \bool_xor_p:nn on line ...
 Defining \bool_while_do:Nn on line ...
@@ -4778,24 +4796,6 @@
 Defining \msg_expandable_error:nnff on line ...
 Defining \msg_expandable_error:nnf on line ...
 Defining \__msg_expandable_error_module:nn on line ...
-Defining \bool_lazy_all_p:n on line ...
-Defining \bool_lazy_all:nT on line ...
-Defining \bool_lazy_all:nF on line ...
-Defining \bool_lazy_all:nTF on line ...
-Defining \__bool_lazy_all:n on line ...
-Defining \bool_lazy_and_p:nn on line ...
-Defining \bool_lazy_and:nnT on line ...
-Defining \bool_lazy_and:nnF on line ...
-Defining \bool_lazy_and:nnTF on line ...
-Defining \bool_lazy_any_p:n on line ...
-Defining \bool_lazy_any:nT on line ...
-Defining \bool_lazy_any:nF on line ...
-Defining \bool_lazy_any:nTF on line ...
-Defining \__bool_lazy_any:n on line ...
-Defining \bool_lazy_or_p:nn on line ...
-Defining \bool_lazy_or:nnT on line ...
-Defining \bool_lazy_or:nnF on line ...
-Defining \bool_lazy_or:nnTF on line ...
 Defining \prop_count:N on line ...
 Defining \__prop_count:nn on line ...
 Defining \prop_count:c on line ...

Modified: trunk/l3kernel/testfiles/m3expl001.uptex.tlg
===================================================================
--- trunk/l3kernel/testfiles/m3expl001.uptex.tlg	2017-03-29 13:29:20 UTC (rev 7032)
+++ trunk/l3kernel/testfiles/m3expl001.uptex.tlg	2017-03-29 13:53:34 UTC (rev 7033)
@@ -1544,6 +1544,24 @@
 Defining \__bool_eval_skip_to_end_auxi:Nw on line ...
 Defining \__bool_eval_skip_to_end_auxii:Nw on line ...
 Defining \__bool_eval_skip_to_end_auxiii:Nw on line ...
+Defining \bool_lazy_all_p:n on line ...
+Defining \bool_lazy_all:nT on line ...
+Defining \bool_lazy_all:nF on line ...
+Defining \bool_lazy_all:nTF on line ...
+Defining \__bool_lazy_all:n on line ...
+Defining \bool_lazy_and_p:nn on line ...
+Defining \bool_lazy_and:nnT on line ...
+Defining \bool_lazy_and:nnF on line ...
+Defining \bool_lazy_and:nnTF on line ...
+Defining \bool_lazy_any_p:n on line ...
+Defining \bool_lazy_any:nT on line ...
+Defining \bool_lazy_any:nF on line ...
+Defining \bool_lazy_any:nTF on line ...
+Defining \__bool_lazy_any:n on line ...
+Defining \bool_lazy_or_p:nn on line ...
+Defining \bool_lazy_or:nnT on line ...
+Defining \bool_lazy_or:nnF on line ...
+Defining \bool_lazy_or:nnTF on line ...
 Defining \bool_not_p:n on line ...
 Defining \bool_xor_p:nn on line ...
 Defining \bool_while_do:Nn on line ...
@@ -4753,24 +4771,6 @@
 Defining \msg_expandable_error:nnff on line ...
 Defining \msg_expandable_error:nnf on line ...
 Defining \__msg_expandable_error_module:nn on line ...
-Defining \bool_lazy_all_p:n on line ...
-Defining \bool_lazy_all:nT on line ...
-Defining \bool_lazy_all:nF on line ...
-Defining \bool_lazy_all:nTF on line ...
-Defining \__bool_lazy_all:n on line ...
-Defining \bool_lazy_and_p:nn on line ...
-Defining \bool_lazy_and:nnT on line ...
-Defining \bool_lazy_and:nnF on line ...
-Defining \bool_lazy_and:nnTF on line ...
-Defining \bool_lazy_any_p:n on line ...
-Defining \bool_lazy_any:nT on line ...
-Defining \bool_lazy_any:nF on line ...
-Defining \bool_lazy_any:nTF on line ...
-Defining \__bool_lazy_any:n on line ...
-Defining \bool_lazy_or_p:nn on line ...
-Defining \bool_lazy_or:nnT on line ...
-Defining \bool_lazy_or:nnF on line ...
-Defining \bool_lazy_or:nnTF on line ...
 Defining \prop_count:N on line ...
 Defining \__prop_count:nn on line ...
 Defining \prop_count:c on line ...

Modified: trunk/l3kernel/testfiles/m3expl001.xetex.tlg
===================================================================
--- trunk/l3kernel/testfiles/m3expl001.xetex.tlg	2017-03-29 13:29:20 UTC (rev 7032)
+++ trunk/l3kernel/testfiles/m3expl001.xetex.tlg	2017-03-29 13:53:34 UTC (rev 7033)
@@ -1810,6 +1810,24 @@
 Defining \__bool_eval_skip_to_end_auxi:Nw on line ...
 Defining \__bool_eval_skip_to_end_auxii:Nw on line ...
 Defining \__bool_eval_skip_to_end_auxiii:Nw on line ...
+Defining \bool_lazy_all_p:n on line ...
+Defining \bool_lazy_all:nT on line ...
+Defining \bool_lazy_all:nF on line ...
+Defining \bool_lazy_all:nTF on line ...
+Defining \__bool_lazy_all:n on line ...
+Defining \bool_lazy_and_p:nn on line ...
+Defining \bool_lazy_and:nnT on line ...
+Defining \bool_lazy_and:nnF on line ...
+Defining \bool_lazy_and:nnTF on line ...
+Defining \bool_lazy_any_p:n on line ...
+Defining \bool_lazy_any:nT on line ...
+Defining \bool_lazy_any:nF on line ...
+Defining \bool_lazy_any:nTF on line ...
+Defining \__bool_lazy_any:n on line ...
+Defining \bool_lazy_or_p:nn on line ...
+Defining \bool_lazy_or:nnT on line ...
+Defining \bool_lazy_or:nnF on line ...
+Defining \bool_lazy_or:nnTF on line ...
 Defining \bool_not_p:n on line ...
 Defining \bool_xor_p:nn on line ...
 Defining \bool_while_do:Nn on line ...
@@ -4763,24 +4781,6 @@
 Defining \msg_expandable_error:nnff on line ...
 Defining \msg_expandable_error:nnf on line ...
 Defining \__msg_expandable_error_module:nn on line ...
-Defining \bool_lazy_all_p:n on line ...
-Defining \bool_lazy_all:nT on line ...
-Defining \bool_lazy_all:nF on line ...
-Defining \bool_lazy_all:nTF on line ...
-Defining \__bool_lazy_all:n on line ...
-Defining \bool_lazy_and_p:nn on line ...
-Defining \bool_lazy_and:nnT on line ...
-Defining \bool_lazy_and:nnF on line ...
-Defining \bool_lazy_and:nnTF on line ...
-Defining \bool_lazy_any_p:n on line ...
-Defining \bool_lazy_any:nT on line ...
-Defining \bool_lazy_any:nF on line ...
-Defining \bool_lazy_any:nTF on line ...
-Defining \__bool_lazy_any:n on line ...
-Defining \bool_lazy_or_p:nn on line ...
-Defining \bool_lazy_or:nnT on line ...
-Defining \bool_lazy_or:nnF on line ...
-Defining \bool_lazy_or:nnTF on line ...
 Defining \prop_count:N on line ...
 Defining \__prop_count:nn on line ...
 Defining \prop_count:c on line ...

Modified: trunk/l3kernel/testfiles/m3expl003.luatex.tlg
===================================================================
--- trunk/l3kernel/testfiles/m3expl003.luatex.tlg	2017-03-29 13:29:20 UTC (rev 7032)
+++ trunk/l3kernel/testfiles/m3expl003.luatex.tlg	2017-03-29 13:53:34 UTC (rev 7033)
@@ -1812,6 +1812,24 @@
 Defining \__bool_eval_skip_to_end_auxi:Nw on line ...
 Defining \__bool_eval_skip_to_end_auxii:Nw on line ...
 Defining \__bool_eval_skip_to_end_auxiii:Nw on line ...
+Defining \bool_lazy_all_p:n on line ...
+Defining \bool_lazy_all:nT on line ...
+Defining \bool_lazy_all:nF on line ...
+Defining \bool_lazy_all:nTF on line ...
+Defining \__bool_lazy_all:n on line ...
+Defining \bool_lazy_and_p:nn on line ...
+Defining \bool_lazy_and:nnT on line ...
+Defining \bool_lazy_and:nnF on line ...
+Defining \bool_lazy_and:nnTF on line ...
+Defining \bool_lazy_any_p:n on line ...
+Defining \bool_lazy_any:nT on line ...
+Defining \bool_lazy_any:nF on line ...
+Defining \bool_lazy_any:nTF on line ...
+Defining \__bool_lazy_any:n on line ...
+Defining \bool_lazy_or_p:nn on line ...
+Defining \bool_lazy_or:nnT on line ...
+Defining \bool_lazy_or:nnF on line ...
+Defining \bool_lazy_or:nnTF on line ...
 Defining \bool_not_p:n on line ...
 Defining \bool_xor_p:nn on line ...
 Defining \bool_while_do:Nn on line ...
@@ -4791,24 +4809,6 @@
 Defining \msg_expandable_error:nnff on line ...
 Defining \msg_expandable_error:nnf on line ...
 Defining \__msg_expandable_error_module:nn on line ...
-Defining \bool_lazy_all_p:n on line ...
-Defining \bool_lazy_all:nT on line ...
-Defining \bool_lazy_all:nF on line ...
-Defining \bool_lazy_all:nTF on line ...
-Defining \__bool_lazy_all:n on line ...
-Defining \bool_lazy_and_p:nn on line ...
-Defining \bool_lazy_and:nnT on line ...
-Defining \bool_lazy_and:nnF on line ...
-Defining \bool_lazy_and:nnTF on line ...
-Defining \bool_lazy_any_p:n on line ...
-Defining \bool_lazy_any:nT on line ...
-Defining \bool_lazy_any:nF on line ...
-Defining \bool_lazy_any:nTF on line ...
-Defining \__bool_lazy_any:n on line ...
-Defining \bool_lazy_or_p:nn on line ...
-Defining \bool_lazy_or:nnT on line ...
-Defining \bool_lazy_or:nnF on line ...
-Defining \bool_lazy_or:nnTF on line ...
 Defining \prop_count:N on line ...
 Defining \__prop_count:nn on line ...
 Defining \prop_count:c on line ...

Modified: trunk/l3kernel/testfiles/m3expl003.ptex.tlg
===================================================================
--- trunk/l3kernel/testfiles/m3expl003.ptex.tlg	2017-03-29 13:29:20 UTC (rev 7032)
+++ trunk/l3kernel/testfiles/m3expl003.ptex.tlg	2017-03-29 13:53:34 UTC (rev 7033)
@@ -1544,6 +1544,24 @@
 Defining \__bool_eval_skip_to_end_auxi:Nw on line ...
 Defining \__bool_eval_skip_to_end_auxii:Nw on line ...
 Defining \__bool_eval_skip_to_end_auxiii:Nw on line ...
+Defining \bool_lazy_all_p:n on line ...
+Defining \bool_lazy_all:nT on line ...
+Defining \bool_lazy_all:nF on line ...
+Defining \bool_lazy_all:nTF on line ...
+Defining \__bool_lazy_all:n on line ...
+Defining \bool_lazy_and_p:nn on line ...
+Defining \bool_lazy_and:nnT on line ...
+Defining \bool_lazy_and:nnF on line ...
+Defining \bool_lazy_and:nnTF on line ...
+Defining \bool_lazy_any_p:n on line ...
+Defining \bool_lazy_any:nT on line ...
+Defining \bool_lazy_any:nF on line ...
+Defining \bool_lazy_any:nTF on line ...
+Defining \__bool_lazy_any:n on line ...
+Defining \bool_lazy_or_p:nn on line ...
+Defining \bool_lazy_or:nnT on line ...
+Defining \bool_lazy_or:nnF on line ...
+Defining \bool_lazy_or:nnTF on line ...
 Defining \bool_not_p:n on line ...
 Defining \bool_xor_p:nn on line ...
 Defining \bool_while_do:Nn on line ...
@@ -4754,24 +4772,6 @@
 Defining \msg_expandable_error:nnff on line ...
 Defining \msg_expandable_error:nnf on line ...
 Defining \__msg_expandable_error_module:nn on line ...
-Defining \bool_lazy_all_p:n on line ...
-Defining \bool_lazy_all:nT on line ...
-Defining \bool_lazy_all:nF on line ...
-Defining \bool_lazy_all:nTF on line ...
-Defining \__bool_lazy_all:n on line ...
-Defining \bool_lazy_and_p:nn on line ...
-Defining \bool_lazy_and:nnT on line ...
-Defining \bool_lazy_and:nnF on line ...
-Defining \bool_lazy_and:nnTF on line ...
-Defining \bool_lazy_any_p:n on line ...
-Defining \bool_lazy_any:nT on line ...
-Defining \bool_lazy_any:nF on line ...
-Defining \bool_lazy_any:nTF on line ...
-Defining \__bool_lazy_any:n on line ...
-Defining \bool_lazy_or_p:nn on line ...
-Defining \bool_lazy_or:nnT on line ...
-Defining \bool_lazy_or:nnF on line ...
-Defining \bool_lazy_or:nnTF on line ...
 Defining \prop_count:N on line ...
 Defining \__prop_count:nn on line ...
 Defining \prop_count:c on line ...

Modified: trunk/l3kernel/testfiles/m3expl003.tlg
===================================================================
--- trunk/l3kernel/testfiles/m3expl003.tlg	2017-03-29 13:29:20 UTC (rev 7032)
+++ trunk/l3kernel/testfiles/m3expl003.tlg	2017-03-29 13:53:34 UTC (rev 7033)
@@ -1544,6 +1544,24 @@
 Defining \__bool_eval_skip_to_end_auxi:Nw on line ...
 Defining \__bool_eval_skip_to_end_auxii:Nw on line ...
 Defining \__bool_eval_skip_to_end_auxiii:Nw on line ...
+Defining \bool_lazy_all_p:n on line ...
+Defining \bool_lazy_all:nT on line ...
+Defining \bool_lazy_all:nF on line ...
+Defining \bool_lazy_all:nTF on line ...
+Defining \__bool_lazy_all:n on line ...
+Defining \bool_lazy_and_p:nn on line ...
+Defining \bool_lazy_and:nnT on line ...
+Defining \bool_lazy_and:nnF on line ...
+Defining \bool_lazy_and:nnTF on line ...
+Defining \bool_lazy_any_p:n on line ...
+Defining \bool_lazy_any:nT on line ...
+Defining \bool_lazy_any:nF on line ...
+Defining \bool_lazy_any:nTF on line ...
+Defining \__bool_lazy_any:n on line ...
+Defining \bool_lazy_or_p:nn on line ...
+Defining \bool_lazy_or:nnT on line ...
+Defining \bool_lazy_or:nnF on line ...
+Defining \bool_lazy_or:nnTF on line ...
 Defining \bool_not_p:n on line ...
 Defining \bool_xor_p:nn on line ...
 Defining \bool_while_do:Nn on line ...
@@ -4779,24 +4797,6 @@
 Defining \msg_expandable_error:nnff on line ...
 Defining \msg_expandable_error:nnf on line ...
 Defining \__msg_expandable_error_module:nn on line ...
-Defining \bool_lazy_all_p:n on line ...
-Defining \bool_lazy_all:nT on line ...
-Defining \bool_lazy_all:nF on line ...
-Defining \bool_lazy_all:nTF on line ...
-Defining \__bool_lazy_all:n on line ...
-Defining \bool_lazy_and_p:nn on line ...
-Defining \bool_lazy_and:nnT on line ...
-Defining \bool_lazy_and:nnF on line ...
-Defining \bool_lazy_and:nnTF on line ...
-Defining \bool_lazy_any_p:n on line ...
-Defining \bool_lazy_any:nT on line ...
-Defining \bool_lazy_any:nF on line ...
-Defining \bool_lazy_any:nTF on line ...
-Defining \__bool_lazy_any:n on line ...
-Defining \bool_lazy_or_p:nn on line ...
-Defining \bool_lazy_or:nnT on line ...
-Defining \bool_lazy_or:nnF on line ...
-Defining \bool_lazy_or:nnTF on line ...
 Defining \prop_count:N on line ...
 Defining \__prop_count:nn on line ...
 Defining \prop_count:c on line ...

Modified: trunk/l3kernel/testfiles/m3expl003.uptex.tlg
===================================================================
--- trunk/l3kernel/testfiles/m3expl003.uptex.tlg	2017-03-29 13:29:20 UTC (rev 7032)
+++ trunk/l3kernel/testfiles/m3expl003.uptex.tlg	2017-03-29 13:53:34 UTC (rev 7033)
@@ -1544,6 +1544,24 @@
 Defining \__bool_eval_skip_to_end_auxi:Nw on line ...
 Defining \__bool_eval_skip_to_end_auxii:Nw on line ...
 Defining \__bool_eval_skip_to_end_auxiii:Nw on line ...
+Defining \bool_lazy_all_p:n on line ...
+Defining \bool_lazy_all:nT on line ...
+Defining \bool_lazy_all:nF on line ...
+Defining \bool_lazy_all:nTF on line ...
+Defining \__bool_lazy_all:n on line ...
+Defining \bool_lazy_and_p:nn on line ...
+Defining \bool_lazy_and:nnT on line ...
+Defining \bool_lazy_and:nnF on line ...
+Defining \bool_lazy_and:nnTF on line ...
+Defining \bool_lazy_any_p:n on line ...
+Defining \bool_lazy_any:nT on line ...
+Defining \bool_lazy_any:nF on line ...
+Defining \bool_lazy_any:nTF on line ...
+Defining \__bool_lazy_any:n on line ...
+Defining \bool_lazy_or_p:nn on line ...
+Defining \bool_lazy_or:nnT on line ...
+Defining \bool_lazy_or:nnF on line ...
+Defining \bool_lazy_or:nnTF on line ...
 Defining \bool_not_p:n on line ...
 Defining \bool_xor_p:nn on line ...
 Defining \bool_while_do:Nn on line ...
@@ -4754,24 +4772,6 @@
 Defining \msg_expandable_error:nnff on line ...
 Defining \msg_expandable_error:nnf on line ...
 Defining \__msg_expandable_error_module:nn on line ...
-Defining \bool_lazy_all_p:n on line ...
-Defining \bool_lazy_all:nT on line ...
-Defining \bool_lazy_all:nF on line ...
-Defining \bool_lazy_all:nTF on line ...
-Defining \__bool_lazy_all:n on line ...
-Defining \bool_lazy_and_p:nn on line ...
-Defining \bool_lazy_and:nnT on line ...
-Defining \bool_lazy_and:nnF on line ...
-Defining \bool_lazy_and:nnTF on line ...
-Defining \bool_lazy_any_p:n on line ...
-Defining \bool_lazy_any:nT on line ...
-Defining \bool_lazy_any:nF on line ...
-Defining \bool_lazy_any:nTF on line ...
-Defining \__bool_lazy_any:n on line ...
-Defining \bool_lazy_or_p:nn on line ...
-Defining \bool_lazy_or:nnT on line ...
-Defining \bool_lazy_or:nnF on line ...
-Defining \bool_lazy_or:nnTF on line ...
 Defining \prop_count:N on line ...
 Defining \__prop_count:nn on line ...
 Defining \prop_count:c on line ...

Modified: trunk/l3kernel/testfiles/m3expl003.xetex.tlg
===================================================================
--- trunk/l3kernel/testfiles/m3expl003.xetex.tlg	2017-03-29 13:29:20 UTC (rev 7032)
+++ trunk/l3kernel/testfiles/m3expl003.xetex.tlg	2017-03-29 13:53:34 UTC (rev 7033)
@@ -1810,6 +1810,24 @@
 Defining \__bool_eval_skip_to_end_auxi:Nw on line ...
 Defining \__bool_eval_skip_to_end_auxii:Nw on line ...
 Defining \__bool_eval_skip_to_end_auxiii:Nw on line ...
+Defining \bool_lazy_all_p:n on line ...
+Defining \bool_lazy_all:nT on line ...
+Defining \bool_lazy_all:nF on line ...
+Defining \bool_lazy_all:nTF on line ...
+Defining \__bool_lazy_all:n on line ...
+Defining \bool_lazy_and_p:nn on line ...
+Defining \bool_lazy_and:nnT on line ...
+Defining \bool_lazy_and:nnF on line ...
+Defining \bool_lazy_and:nnTF on line ...
+Defining \bool_lazy_any_p:n on line ...
+Defining \bool_lazy_any:nT on line ...
+Defining \bool_lazy_any:nF on line ...
+Defining \bool_lazy_any:nTF on line ...
+Defining \__bool_lazy_any:n on line ...
+Defining \bool_lazy_or_p:nn on line ...
+Defining \bool_lazy_or:nnT on line ...
+Defining \bool_lazy_or:nnF on line ...
+Defining \bool_lazy_or:nnTF on line ...
 Defining \bool_not_p:n on line ...
 Defining \bool_xor_p:nn on line ...
 Defining \bool_while_do:Nn on line ...
@@ -4764,24 +4782,6 @@
 Defining \msg_expandable_error:nnff on line ...
 Defining \msg_expandable_error:nnf on line ...
 Defining \__msg_expandable_error_module:nn on line ...
-Defining \bool_lazy_all_p:n on line ...
-Defining \bool_lazy_all:nT on line ...
-Defining \bool_lazy_all:nF on line ...
-Defining \bool_lazy_all:nTF on line ...
-Defining \__bool_lazy_all:n on line ...
-Defining \bool_lazy_and_p:nn on line ...
-Defining \bool_lazy_and:nnT on line ...
-Defining \bool_lazy_and:nnF on line ...
-Defining \bool_lazy_and:nnTF on line ...
-Defining \bool_lazy_any_p:n on line ...
-Defining \bool_lazy_any:nT on line ...
-Defining \bool_lazy_any:nF on line ...
-Defining \bool_lazy_any:nTF on line ...
-Defining \__bool_lazy_any:n on line ...
-Defining \bool_lazy_or_p:nn on line ...
-Defining \bool_lazy_or:nnT on line ...
-Defining \bool_lazy_or:nnF on line ...
-Defining \bool_lazy_or:nnTF on line ...
 Defining \prop_count:N on line ...
 Defining \__prop_count:nn on line ...
 Defining \prop_count:c on line ...



More information about the latex3-commits mailing list