<html xmlns:v="urn:schemas-microsoft-com:vml"
xmlns:o="urn:schemas-microsoft-com:office:office"
xmlns:w="urn:schemas-microsoft-com:office:word"
xmlns="http://www.w3.org/TR/REC-html40">

<head>
<meta http-equiv=Content-Type content="text/html; charset=windows-1252">
<meta name=ProgId content=Word.Document>
<meta name=Generator content="Microsoft Word 11">
<meta name=Originator content="Microsoft Word 11">
<link rel=File-List href="Concatenating%20Tuples_files/filelist.xml">
<title>Concatenating Tuples</title>
<!--[if gte mso 9]><xml>
 <o:DocumentProperties>
  <o:Author>Joe Gottman</o:Author>
  <o:LastAuthor>Joe Gottman</o:LastAuthor>
  <o:Revision>5</o:Revision>
  <o:TotalTime>3282</o:TotalTime>
  <o:Created>2007-05-31T01:48:00Z</o:Created>
  <o:LastSaved>2007-06-05T23:17:00Z</o:LastSaved>
  <o:Pages>1</o:Pages>
  <o:Words>616</o:Words>
  <o:Characters>3514</o:Characters>
  <o:Lines>29</o:Lines>
  <o:Paragraphs>8</o:Paragraphs>
  <o:CharactersWithSpaces>4122</o:CharactersWithSpaces>
  <o:Version>11.8132</o:Version>
 </o:DocumentProperties>
</xml><![endif]--><!--[if gte mso 9]><xml>
 <w:WordDocument>
  <w:DontDisplayPageBoundaries/>
  <w:SpellingState>Clean</w:SpellingState>
  <w:GrammarState>Clean</w:GrammarState>
  <w:PunctuationKerning/>
  <w:ValidateAgainstSchemas/>
  <w:SaveIfXMLInvalid>false</w:SaveIfXMLInvalid>
  <w:IgnoreMixedContent>false</w:IgnoreMixedContent>
  <w:AlwaysShowPlaceholderText>false</w:AlwaysShowPlaceholderText>
  <w:Compatibility>
   <w:BreakWrappedTables/>
   <w:SnapToGridInCell/>
   <w:WrapTextWithPunct/>
   <w:UseAsianBreakRules/>
   <w:DontGrowAutofit/>
  </w:Compatibility>
  <w:BrowserLevel>MicrosoftInternetExplorer4</w:BrowserLevel>
 </w:WordDocument>
</xml><![endif]--><!--[if gte mso 9]><xml>
 <w:LatentStyles DefLockedState="false" LatentStyleCount="156">
 </w:LatentStyles>
</xml><![endif]-->
<style>
<!--
 /* Style Definitions */
 p.MsoNormal, li.MsoNormal, div.MsoNormal
	{mso-style-parent:"";
	margin:0in;
	margin-bottom:.0001pt;
	mso-pagination:widow-orphan;
	font-size:12.0pt;
	font-family:"Times New Roman";
	mso-fareast-font-family:"Times New Roman";}
h1
	{mso-style-next:Normal;
	margin-top:12.0pt;
	margin-right:0in;
	margin-bottom:3.0pt;
	margin-left:0in;
	mso-pagination:widow-orphan;
	page-break-after:avoid;
	mso-outline-level:1;
	font-size:16.0pt;
	font-family:Arial;
	mso-font-kerning:16.0pt;}
h2
	{mso-style-next:Normal;
	margin-top:12.0pt;
	margin-right:0in;
	margin-bottom:3.0pt;
	margin-left:0in;
	mso-pagination:widow-orphan;
	page-break-after:avoid;
	mso-outline-level:2;
	font-size:14.0pt;
	font-family:Arial;
	font-style:italic;}
p.MsoEnvelopeAddress, li.MsoEnvelopeAddress, div.MsoEnvelopeAddress
	{margin-top:0in;
	margin-right:0in;
	margin-bottom:0in;
	margin-left:2.0in;
	margin-bottom:.0001pt;
	mso-pagination:widow-orphan;
	mso-element:frame;
	mso-element-frame-width:5.5in;
	mso-element-frame-height:99.0pt;
	mso-element-frame-hspace:9.0pt;
	mso-element-wrap:auto;
	mso-element-anchor-horizontal:page;
	mso-element-left:center;
	mso-element-top:bottom;
	font-size:12.0pt;
	mso-bidi-font-size:10.0pt;
	font-family:"Times New Roman";
	mso-fareast-font-family:"Times New Roman";}
p.MsoEnvelopeReturn, li.MsoEnvelopeReturn, div.MsoEnvelopeReturn
	{margin:0in;
	margin-bottom:.0001pt;
	mso-pagination:widow-orphan;
	font-size:10.0pt;
	font-family:"Times New Roman";
	mso-fareast-font-family:"Times New Roman";}
a:link, span.MsoHyperlink
	{color:blue;
	text-decoration:underline;
	text-underline:single;}
a:visited, span.MsoHyperlinkFollowed
	{color:purple;
	text-decoration:underline;
	text-underline:single;}
code
	{font-family:"Courier New";
	mso-ascii-font-family:"Courier New";
	mso-fareast-font-family:"Times New Roman";
	mso-hansi-font-family:"Courier New";
	mso-bidi-font-family:"Courier New";}
pre
	{margin:0in;
	margin-bottom:.0001pt;
	mso-pagination:widow-orphan;
	font-size:10.0pt;
	font-family:"Courier New";
	mso-fareast-font-family:"Times New Roman";}
span.SpellE
	{mso-style-name:"";
	mso-spl-e:yes;}
span.GramE
	{mso-style-name:"";
	mso-gram-e:yes;}
@page Section1
	{size:8.5in 11.0in;
	margin:1.0in 1.25in 1.0in 1.25in;
	mso-header-margin:.5in;
	mso-footer-margin:.5in;
	mso-paper-source:0;}
div.Section1
	{page:Section1;}
-->
</style>
<!--[if gte mso 10]>
<style>
 /* Style Definitions */
 table.MsoNormalTable
	{mso-style-name:"Table Normal";
	mso-tstyle-rowband-size:0;
	mso-tstyle-colband-size:0;
	mso-style-noshow:yes;
	mso-style-parent:"";
	mso-padding-alt:0in 5.4pt 0in 5.4pt;
	mso-para-margin:0in;
	mso-para-margin-bottom:.0001pt;
	mso-pagination:widow-orphan;
	font-size:10.0pt;
	font-family:"Times New Roman";
	mso-ansi-language:#0400;
	mso-fareast-language:#0400;
	mso-bidi-language:#0400;}
</style>
<![endif]--><!--[if gte mso 9]><xml>
 <o:shapedefaults v:ext="edit" spidmax="3074">
  <o:colormenu v:ext="edit" fillcolor="silver"/>
 </o:shapedefaults></xml><![endif]--><!--[if gte mso 9]><xml>
 <o:shapelayout v:ext="edit">
  <o:idmap v:ext="edit" data="1"/>
 </o:shapelayout></xml><![endif]-->
</head>

<body lang=EN-US link=blue vlink=purple style='tab-interval:.5in'>

<div class=Section1>

<h1>Concatenating <span class=SpellE>tuples</span></h1>

<p class=MsoNormal><o:p>&nbsp;</o:p></p>

<p class=MsoNormal><span class=GramE>Doc. no.</span>&nbsp;&nbsp; N2299=07-0159<br>
Date:&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 2007-06-05<br>
Reply to:&nbsp;&nbsp; Joe Gottman <span class=MsoHyperlink><a
href="mailto:jgottman@carolina.rr.com">jgottman@carolina.rr.com</a></span></p>

<p class=MsoNormal>Library Working Group</p>

<p class=MsoNormal style='margin-right:92.25pt'><o:p>&nbsp;</o:p></p>

<p class=MsoNormal style='margin-right:92.25pt'><a href="#_Introduction">Introduction</a></p>

<p class=MsoNormal style='margin-right:92.25pt'><a href="#_Proposed_Wording">Proposed
Wording</a></p>

<p class=MsoNormal style='margin-right:92.25pt'><o:p>&nbsp;</o:p></p>

<h2 style='margin-right:92.25pt'><a name="_Introduction"></a>Introduction</h2>

<p class=MsoNormal style='margin-right:92.25pt'><o:p>&nbsp;</o:p></p>

<p class=MsoNormal style='margin-right:92.25pt'><span
style='mso-spacerun:yes'> </span>Conceptually, concatenation is a basic
operation on <span class=SpellE>tuples</span>.<span style='mso-spacerun:yes'>
</span>To concatenate two <span class=SpellE>tuples</span> just means to create
a new <span class=SpellE>tuple</span> containing all the information in both <span
class=SpellE>tuples</span>.<span style='mso-spacerun:yes'> </span>For example,
if t is a <span class=SpellE>tuple</span>&lt;int, string&gt; containing {1,
&quot;two&quot;} and u is a <span class=SpellE>tuple</span> &lt;double&gt;
containing&nbsp;{3.0}, then <span class=GramE>concatenate(</span>t, u) would be
a <span class=SpellE>tuple</span>&lt;int, string, double&gt; containing {1,
two&quot;, 3.0}.&nbsp; This operation has many potential uses.<span
style='mso-spacerun:yes'> </span>For example, a user might call a function
that returns a <span class=SpellE>tuple</span> and want to add extra
information. Also, concatenation can be a basic building block for more complex
<span class=SpellE>tuple</span>-based <span class=SpellE>metaprogramming</span>.<span
style='mso-spacerun:yes'> </span></p>

<p class=MsoNormal style='margin-right:92.25pt'><o:p>&nbsp;</o:p></p>

<p class=MsoNormal style='margin-right:92.25pt'><span
style='mso-spacerun:yes'> </span>As <span class=SpellE>tuples</span> are
currently defined it is simple to write a function to concatenate <span
class=SpellE>tuples</span> of known size, but it would be difficult to
implement this function for <span class=SpellE>tuples</span> of indeterminate
size, even using template <span class=SpellE>metaprogramming</span> and
implementation functions templated on int. The user would have to use techniques
similar to the implementation of <span class=SpellE>std::bind</span> described
in <a href="http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2006/n2080.pdf">N2080</a>.<span
style='mso-spacerun:yes'> </span><span style='mso-spacerun:yes'></span>I
therefore propose adding four new functions to the standard to concatenate two <span
class=SpellE>tuples</span>:<span style='mso-spacerun:yes'> </span><span
style='font-size:10.0pt;font-family:"Courier New"'><o:p></o:p></span></p>

<p class=MsoNormal style='margin-right:92.25pt'><o:p>&nbsp;</o:p></p>

<p class=MsoNormal style='margin-right:92.25pt'><code><span style='font-size:
10.0pt'><span style='mso-spacerun:yes'> </span><span class=GramE>template</span>
&lt;class <span class=SpellE>TTypes</span>, class <span class=SpellE>UTypes</span>&gt;
<o:p></o:p></span></code></p>

<p class=MsoNormal style='margin-right:92.25pt'><code><span style='font-size:
10.0pt'><span style='mso-spacerun:yes'> </span><span class=SpellE><span
class=GramE>tuple</span></span><span class=GramE>&lt;</span><span class=SpellE>TTypes</span>,
<span class=SpellE>UTypes</span>&gt; concatenate(const <span class=SpellE>tuple</span>&lt;<span
class=SpellE>TTypes</span>&gt; &amp;t, const <span class=SpellE>tuple</span>&lt;<span
class=SpellE>UTypes</span>&gt; &amp;u);<o:p></o:p></span></code></p>

<p class=MsoNormal style='margin-right:92.25pt'><o:p>&nbsp;</o:p></p>

<p class=MsoNormal style='margin-right:92.25pt'><span class=GramE>and</span>
three similar functions passing one or both parameters by rvalue reference
instead of const lvalue reference. </p>

<h2 style='margin-right:92.25pt'><a name="_Proposed_Wording"></a>Proposed
Wording</h2>

<p class=MsoNormal style='margin-right:92.25pt'><b style='mso-bidi-font-weight:
normal'><o:p>&nbsp;</o:p></b></p>

<p class=MsoNormal style='margin-right:92.25pt'><span
style='mso-spacerun:yes'> </span>Modify &lt;<span class=SpellE>tuple</span>&gt;
by extending the synopsis of 20.3.1.2 to include the following:</p>

<p class=MsoNormal style='margin-right:92.25pt'><o:p>&nbsp;</o:p></p>

<p class=MsoNormal style='margin-right:92.25pt'><span
style='mso-spacerun:yes'> </span><span class=GramE><code><span
style='font-size:10.0pt'>template</span></code></span><code><span
style='font-size:10.0pt'> &lt;class <span class=SpellE>TTypes</span>, class <span
class=SpellE>UTypes</span>&gt; <o:p></o:p></span></code></p>

<p class=MsoNormal style='margin-right:92.25pt'><code><span style='font-size:
10.0pt'><span style='mso-spacerun:yes'> </span><span class=SpellE><span
class=GramE>tuple</span></span><span class=GramE>&lt;</span><span class=SpellE>TTypes</span>,
<span class=SpellE>UTypes</span>&gt; concatenate(const <span class=SpellE>tuple</span>&lt;<span
class=SpellE>TTypes</span>&gt; &amp;t, const <span class=SpellE>tuple</span>&lt;<span
class=SpellE>UTypes</span>&gt; &amp;u);<o:p></o:p></span></code></p>

<p class=MsoNormal style='margin-right:92.25pt'><code><span style='font-size:
10.0pt'><o:p>&nbsp;</o:p></span></code></p>

<p class=MsoNormal style='margin-right:92.25pt'><code><span style='font-size:
10.0pt'><span style='mso-spacerun:yes'> </span><span class=GramE>template</span>
&lt;class <span class=SpellE>TTypes</span>, class <span class=SpellE>UTypes</span>&gt;
<o:p></o:p></span></code></p>

<p class=MsoNormal style='margin-right:92.25pt'><code><span style='font-size:
10.0pt'><span style='mso-spacerun:yes'> </span><span class=SpellE><span
class=GramE>tuple</span></span><span class=GramE>&lt;</span><span class=SpellE>TTypes</span>,
<span class=SpellE>UTypes</span>&gt; concatenate(<span class=SpellE>tuple</span>&lt;<span
class=SpellE>TTypes</span>&gt; &amp;&amp;t, const <span class=SpellE>tuple</span>&lt;<span
class=SpellE>UTypes</span>&gt; &amp;u);<o:p></o:p></span></code></p>

<p class=MsoNormal style='margin-right:92.25pt'><code><span style='font-size:
10.0pt'><o:p>&nbsp;</o:p></span></code></p>

<p class=MsoNormal style='margin-right:92.25pt'><code><span style='font-size:
10.0pt'><span style='mso-spacerun:yes'> </span><span class=GramE>template</span>
&lt;class <span class=SpellE>TTypes</span>, class <span class=SpellE>UTypes</span>&gt;
<o:p></o:p></span></code></p>

<p class=MsoNormal style='margin-right:92.25pt'><code><span style='font-size:
10.0pt'><span style='mso-spacerun:yes'> </span><span class=SpellE><span
class=GramE>tuple</span></span><span class=GramE>&lt;</span><span class=SpellE>TTypes</span>,
<span class=SpellE>UTypes</span>&gt; concatenate(const <span class=SpellE>tuple</span>&lt;<span
class=SpellE>TTypes</span>&gt; &amp;t, <span class=SpellE>tuple</span>&lt;<span
class=SpellE>UTypes</span>&gt; &amp;&amp;u);<o:p></o:p></span></code></p>

<p class=MsoNormal style='margin-right:92.25pt'><code><span style='font-size:
10.0pt'><o:p>&nbsp;</o:p></span></code></p>

<p class=MsoNormal style='margin-right:92.25pt'><code><span style='font-size:
10.0pt'><span style='mso-spacerun:yes'> </span><span class=GramE>template</span>
&lt;class <span class=SpellE>TTypes</span>, class <span class=SpellE>UTypes</span>&gt;
<o:p></o:p></span></code></p>

<p class=MsoNormal style='margin-right:92.25pt'><code><span style='font-size:
10.0pt'><span style='mso-spacerun:yes'> </span><span class=SpellE><span
class=GramE>tuple</span></span><span class=GramE>&lt;</span><span class=SpellE>TTypes</span>,
<span class=SpellE>UTypes</span>&gt; concatenate(<span class=SpellE>tuple</span>&lt;<span
class=SpellE>TTypes</span>&gt; &amp;&amp;t, <span class=SpellE>tuple</span>&lt;<span
class=SpellE>UTypes</span>&gt; &amp;&amp;u);<o:p></o:p></span></code></p>

<p class=MsoNormal style='margin-right:92.25pt'><code><span style='font-size:
10.0pt'><o:p>&nbsp;</o:p></span></code></p>

<p class=MsoNormal style='margin-right:92.25pt'><o:p>&nbsp;</o:p></p>

<p class=MsoNormal style='margin-right:92.25pt'>Add the following functions to
20.3.1.2:</p>

<p class=MsoNormal style='margin-right:92.25pt'><o:p>&nbsp;</o:p></p>

<p class=MsoNormal style='margin-right:92.25pt'><o:p>&nbsp;</o:p></p>

<p class=MsoNormal style='margin-right:92.25pt'><span class=GramE><code><span
style='font-size:10.0pt'>template</span></code></span><code><span
style='font-size:10.0pt'> &lt;class <span class=SpellE>TTypes</span>, class <span
class=SpellE>UTypes</span>&gt; <o:p></o:p></span></code></p>

<p class=MsoNormal style='margin-right:92.25pt'><code><span style='font-size:
10.0pt'><span style='mso-spacerun:yes'> </span><span class=SpellE><span
class=GramE>tuple</span></span><span class=GramE>&lt;</span><span class=SpellE>TTypes</span>,
<span class=SpellE>UTypes</span>&gt; concatenate(const <span class=SpellE>tuple</span>&lt;<span
class=SpellE>TTypes</span>&gt; &amp;t, const <span class=SpellE>tuple</span>&lt;<span
class=SpellE>UTypes</span>&gt; &amp;u);<o:p></o:p></span></code></p>

<p class=MsoNormal style='margin-right:92.25pt'><o:p>&nbsp;</o:p></p>

<p class=MsoNormal style='margin-right:92.25pt'><span class=GramE><i
style='mso-bidi-font-style:normal'>Requires</i>: All the types in <span
class=SpellE>TTypes</span> and <span class=SpellE>UTypes</span> are <span
class=SpellE>CopyConstructable</span>.</span></p>

<p class=MsoNormal style='margin-right:92.25pt'><i style='mso-bidi-font-style:
normal'>Returns:</i> A <span class=SpellE>tuple</span> constructed by
copy-constructing its first sizeof<span class=GramE>(</span><span
class=SpellE>TTypes</span>) elements from the corresponding elements of t and
copy-constructing its last sizeof(<span class=SpellE>UTypes</span>) elements
from the corresponding elements of u.</p>

<p class=MsoNormal style='margin-right:92.25pt'><code><span style='font-size:
10.0pt'><o:p>&nbsp;</o:p></span></code></p>

<p class=MsoNormal style='margin-right:92.25pt'><span class=GramE><code><span
style='font-size:10.0pt'>template</span></code></span><code><span
style='font-size:10.0pt'> &lt;class <span class=SpellE>TTypes</span>, class <span
class=SpellE>UTypes</span>&gt; <o:p></o:p></span></code></p>

<p class=MsoNormal style='margin-right:92.25pt'><code><span style='font-size:
10.0pt'><span style='mso-spacerun:yes'> </span><span class=SpellE><span
class=GramE>tuple</span></span><span class=GramE>&lt;</span><span class=SpellE>TTypes</span>,
<span class=SpellE>UTypes</span>&gt; concatenate(<span class=SpellE>tuple</span>&lt;<span
class=SpellE>TTypes</span>&gt; &amp;&amp;t, const <span class=SpellE>tuple</span>&lt;<span
class=SpellE>UTypes</span>&gt; &amp;u);<o:p></o:p></span></code></p>

<p class=MsoNormal style='margin-right:92.25pt'><o:p>&nbsp;</o:p></p>

<p class=MsoNormal style='margin-right:92.25pt'><span class=GramE><i
style='mso-bidi-font-style:normal'>Requires:</i> All the types in <span
class=SpellE>TTypes</span> are <span class=SpellE>MoveConstructible</span> and
all the types in <span class=SpellE>UTypes</span> are <span class=SpellE>CopyConstructible</span>.</span></p>

<p class=MsoNormal style='margin-right:92.25pt'><i style='mso-bidi-font-style:
normal'>Returns:</i><span style='mso-spacerun:yes'> </span>A <span
class=SpellE>tuple</span> constructed by move-constructing its first sizeof<span
class=GramE>(</span><span class=SpellE>TTypes</span>) elements from the
corresponding elements of t and copy-constructing its last sizeof(<span
class=SpellE>UTypes</span>) elements from the corresponding elements of u.</p>

<p class=MsoNormal style='margin-right:92.25pt'><o:p>&nbsp;</o:p></p>

<p class=MsoNormal style='margin-right:92.25pt'><span class=GramE><code><span
style='font-size:10.0pt'>template</span></code></span><code><span
style='font-size:10.0pt'> &lt;class <span class=SpellE>TTypes</span>, class <span
class=SpellE>UTypes</span>&gt; <o:p></o:p></span></code></p>

<p class=MsoNormal style='margin-right:92.25pt'><code><span style='font-size:
10.0pt'><span style='mso-spacerun:yes'> </span><span class=SpellE><span
class=GramE>tuple</span></span><span class=GramE>&lt;</span><span class=SpellE>TTypes</span>,
<span class=SpellE>UTypes</span>&gt; concatenate(const <span class=SpellE>tuple</span>&lt;<span
class=SpellE>TTypes</span>&gt; &amp;t, <span class=SpellE>tuple</span>&lt;<span
class=SpellE>UTypes</span>&gt; &amp;&amp;u);<o:p></o:p></span></code></p>

<p class=MsoNormal style='margin-right:92.25pt'><code><span style='font-size:
10.0pt'><o:p>&nbsp;</o:p></span></code></p>

<p class=MsoNormal style='margin-right:92.25pt'><span class=GramE><i
style='mso-bidi-font-style:normal'>Requires:</i> All the types in <span
class=SpellE>TTypes</span> are <span class=SpellE>CopyConstructible</span> and
all the types in <span class=SpellE>UTypes</span> are <span class=SpellE>MoveConstructible</span>.</span></p>

<p class=MsoNormal style='margin-right:92.25pt'><i style='mso-bidi-font-style:
normal'>Returns:</i><span style='mso-spacerun:yes'> </span>A <span
class=SpellE>tuple</span> constructed by copy-constructing its first sizeof<span
class=GramE>(</span><span class=SpellE>TTypes</span>) elements from the
corresponding elements of t and move-constructing its last sizeof(<span
class=SpellE>UTypes</span>) elements from the corresponding elements of u.</p>

<p class=MsoNormal style='margin-right:92.25pt'><o:p>&nbsp;</o:p></p>

<p class=MsoNormal style='margin-right:92.25pt'><span class=GramE><code><span
style='font-size:10.0pt'>template</span></code></span><code><span
style='font-size:10.0pt'> &lt;class <span class=SpellE>TTypes</span>, class <span
class=SpellE>UTypes</span>&gt; <o:p></o:p></span></code></p>

<p class=MsoNormal style='margin-right:92.25pt'><code><span style='font-size:
10.0pt'><span style='mso-spacerun:yes'> </span><span class=SpellE><span
class=GramE>tuple</span></span><span class=GramE>&lt;</span><span class=SpellE>TTypes</span>,
<span class=SpellE>UTypes</span>&gt; concatenate(<span class=SpellE>tuple</span>&lt;<span
class=SpellE>TTypes</span>&gt; &amp;&amp;t, <span class=SpellE>tuple</span>&lt;<span
class=SpellE>UTypes</span>&gt; &amp;&amp;u);<o:p></o:p></span></code></p>

<p class=MsoNormal style='margin-right:92.25pt'><o:p>&nbsp;</o:p></p>

<p class=MsoNormal style='margin-right:92.25pt'><span class=GramE><i
style='mso-bidi-font-style:normal'>Requires:</i><span
style='mso-spacerun:yes'> </span>All the types in <span class=SpellE>TTypes</span>
and <span class=SpellE>UTypes</span> are <span class=SpellE>MoveConstructable</span>.</span></p>

<p class=MsoNormal style='margin-right:92.25pt'><i style='mso-bidi-font-style:
normal'>Returns:</i><span style='mso-spacerun:yes'> </span>A <span
class=SpellE>tuple</span> constructed by move-constructing its first sizeof<span
class=GramE>(</span><span class=SpellE>TTypes</span>) elements from the
corresponding elements of t and move-constructing its last sizeof(<span
class=SpellE>UTypes</span>) elements from the corresponding elements of u.</p>

<p class=MsoNormal style='margin-right:92.25pt'><o:p>&nbsp;</o:p></p>

</div>

</body>

</html>
