  Proto expressions, if  they are not already, by making them Proto terminals held by
              value if possible. Objects that are already Proto expressions are simply returned
              by value. If
              <code class="computeroutput">wants_basic_expr&lt;Generator&gt;::value</code> is true,
              then let <span class="emphasis"><em>E</em></span> be
              <code class="computeroutput"><a class="link" href="../basic_expr.html" title="Struct template basic_expr">proto::basic_exp