$include_dir="/home/hyper-archives/boost-commit/include"; include("$include_dir/msg-header.inc") ?>
Subject: [Boost-commit] svn:boost r70143 - in sandbox/assign_v2: boost/assign/v2/detail/traits boost/assign/v2/ref/array boost/assign/v2/utility boost/assign/v2/utility/conversion boost/assign/v2/value/deque libs/assign/v2 libs/assign/v2/test/ref libs/assign/v2/test/utility libs/assign/v2/test/value libs/assign/v2/test/value/modifier libs/assign/v2/test/value/pipe libs/assign/v2/test/value/pipe/modifier
From: erwann.rogard_at_[hidden]
Date: 2011-03-18 18:01:27
Author: e_r
Date: 2011-03-18 18:01:24 EDT (Fri, 18 Mar 2011)
New Revision: 70143
URL: http://svn.boost.org/trac/boost/changeset/70143
Log:
upd assign_v2
Text files modified: 
   sandbox/assign_v2/boost/assign/v2/detail/traits/type.hpp               |    16 -------                                 
   sandbox/assign_v2/boost/assign/v2/ref/array/interface.hpp              |     2                                         
   sandbox/assign_v2/boost/assign/v2/utility/conversion/convert.hpp       |     1                                         
   sandbox/assign_v2/boost/assign/v2/utility/csv.hpp                      |    20 ++++++----                              
   sandbox/assign_v2/boost/assign/v2/value/deque/csv_deque.hpp            |     2                                         
   sandbox/assign_v2/libs/assign/v2/test/ref/csv_array.cpp                |     6 +-                                      
   sandbox/assign_v2/libs/assign/v2/test/utility/chain.cpp                |    12 ++----                                  
   sandbox/assign_v2/libs/assign/v2/test/utility/conversion.cpp           |    20 ++++++---                               
   sandbox/assign_v2/libs/assign/v2/test/utility/csv.cpp                  |    10 ++---                                   
   sandbox/assign_v2/libs/assign/v2/test/value/deque.cpp                  |    80 +++++++++++++++++++++++++++------------ 
   sandbox/assign_v2/libs/assign/v2/test/value/fun.cpp                    |     8 ++--                                    
   sandbox/assign_v2/libs/assign/v2/test/value/modifier/iterate.cpp       |    25 +++++-------                            
   sandbox/assign_v2/libs/assign/v2/test/value/modifier/lookup.cpp        |    15 ++++---                                 
   sandbox/assign_v2/libs/assign/v2/test/value/modifier/repeat.cpp        |    15 +++----                                 
   sandbox/assign_v2/libs/assign/v2/test/value/modifier/standard.cpp      |    23 +++++------                             
   sandbox/assign_v2/libs/assign/v2/test/value/pipe/fun.cpp               |     1                                         
   sandbox/assign_v2/libs/assign/v2/test/value/pipe/modifier/iterate.cpp  |     1                                         
   sandbox/assign_v2/libs/assign/v2/test/value/pipe/modifier/lookup.cpp   |     1                                         
   sandbox/assign_v2/libs/assign/v2/test/value/pipe/modifier/repeat.cpp   |     1                                         
   sandbox/assign_v2/libs/assign/v2/test/value/pipe/modifier/standard.cpp |     7 +--                                     
   sandbox/assign_v2/libs/assign/v2/test/value/pipe/put.cpp               |     6 +-                                      
   sandbox/assign_v2/libs/assign/v2/test/value/ptr.cpp                    |     8 ++--                                    
   sandbox/assign_v2/libs/assign/v2/test/value/put.cpp                    |    10 ++--                                    
   sandbox/assign_v2/libs/assign/v2/tutorial.cpp                          |    27 +++++++++----                           
   24 files changed, 169 insertions(+), 148 deletions(-)
Modified: sandbox/assign_v2/boost/assign/v2/detail/traits/type.hpp
==============================================================================
--- sandbox/assign_v2/boost/assign/v2/detail/traits/type.hpp	(original)
+++ sandbox/assign_v2/boost/assign/v2/detail/traits/type.hpp	2011-03-18 18:01:24 EDT (Fri, 18 Mar 2011)
@@ -1,15 +1 @@
-//////////////////////////////////////////////////////////////////////////////
-//  Boost.Assign v2                                                         //
-//                                                                          //
-//  Copyright (C) 2003-2004 Thorsten Ottosen                                //
-//  Copyright (C) 2010 Erwann Rogard                                        //
-//  Use, modification and distribution are subject to the                   //
-//  Boost Software License, Version 1.0. (See accompanying file             //
-//  LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)        //
-//////////////////////////////////////////////////////////////////////////////
-#ifndef BOOST_ASSIGN_V2_DETAIL_TRAITS_TYPE_ER_2010_HPP
-#define BOOST_ASSIGN_V2_DETAIL_TRAITS_TYPE_ER_2010_HPP
-#include <boost/assign/v2/detail/traits/type/has_value_type.hpp>
-#include <boost/assign/v2/detail/traits/type/value.hpp>
-
-#endif // BOOST_ASSIGN_V2_DETAIL_TRAITS_TYPE_ER_2010_HPP
+// TODO remove file
\ No newline at end of file
Modified: sandbox/assign_v2/boost/assign/v2/ref/array/interface.hpp
==============================================================================
--- sandbox/assign_v2/boost/assign/v2/ref/array/interface.hpp	(original)
+++ sandbox/assign_v2/boost/assign/v2/ref/array/interface.hpp	2011-03-18 18:01:24 EDT (Fri, 18 Mar 2011)
@@ -65,7 +65,7 @@
         typedef interface<Impl, D> this_;
         typedef typename traits_::result_of_get_ result_of_get_;
 //->
-        typedef /*<-*/typename traits_::param_type BOOST_ASSIGN_V2_IGNORE(/*->*/unspecified/*<-*/)/*->*/param_type;
+        typedef /*<-*/typename traits_::param_type BOOST_ASSIGN_V2_IGNORE(/*->*/unspecified/*<-*/) /*->*/param_type;
 
         public:
 
Modified: sandbox/assign_v2/boost/assign/v2/utility/conversion/convert.hpp
==============================================================================
--- sandbox/assign_v2/boost/assign/v2/utility/conversion/convert.hpp	(original)
+++ sandbox/assign_v2/boost/assign/v2/utility/conversion/convert.hpp	2011-03-18 18:01:24 EDT (Fri, 18 Mar 2011)
@@ -60,7 +60,6 @@
     }BOOST_ASSIGN_V2_IGNORE(/*->*/;/*<-*/)/*->*/
 
 }// conversion_aux
-//using conversion_aux::convert;
 namespace result_of{
 
     template<typename /*<<Container>>*/ C, typename /*<<Range>>*/R>
Modified: sandbox/assign_v2/boost/assign/v2/utility/csv.hpp
==============================================================================
--- sandbox/assign_v2/boost/assign/v2/utility/csv.hpp	(original)
+++ sandbox/assign_v2/boost/assign/v2/utility/csv.hpp	2011-03-18 18:01:24 EDT (Fri, 18 Mar 2011)
@@ -16,6 +16,7 @@
 #include <boost/mpl/fold.hpp>
 #include <boost/mpl/placeholders.hpp>
 #include <boost/mpl/vector.hpp>
+#include <boost/mpl/vector/vector0.hpp>
 #if BOOST_ASSIGN_V2_ENABLE_CPP0X
 #include <utility>
 #include <boost/assign/v2/temporary/variadic_vector.hpp>
@@ -58,23 +59,25 @@
 namespace result_of{
 
     template<typename F, typename V>
-    struct csv /*<-*/: ::boost::mpl::apply1<
+    struct csv/*<-*/
+        : ::boost::mpl::apply1<
         csv_aux::result<F>,
         V
-    >{}/*->*/;
+        >
+    {}/*->*/;
 
 }// nth_result_of
-//->
-#if BOOST_ASSIGN_V2_ENABLE_CPP0X
 //<-
+#if BOOST_ASSIGN_V2_ENABLE_CPP0X
+//->
 
-    template<typename F, typename T>
+    template<typename F>
     typename result_of::csv<F const&,
-        ::boost::mpl::vector<T>
+        ::boost::mpl::vector0<>
     >::type
-    csv( F const& functor, T&& t )/*<-*/
+    csv( F const& functor)/*<-*/
     {
-        return functor( t );
+        return functor;
     }BOOST_ASSIGN_V2_IGNORE(/*->*/;/*<-*/)/*->*/
 
     template<typename F, typename T, typename... Args>
@@ -86,6 +89,7 @@
         return csv( functor( t ), std::forward<Args>( args )... );
     }BOOST_ASSIGN_V2_IGNORE(/*->*/;/*<-*/)/*->*/
 
+//]
 #else
 #define BOOST_ASSIGN_V2_MACRO1(z, i, data) BOOST_PP_CAT(T, i) data
 #define BOOST_ASSIGN_V2_MACRO2(z, i, data) ( BOOST_PP_CAT(_, i) )
Modified: sandbox/assign_v2/boost/assign/v2/value/deque/csv_deque.hpp
==============================================================================
--- sandbox/assign_v2/boost/assign/v2/value/deque/csv_deque.hpp	(original)
+++ sandbox/assign_v2/boost/assign/v2/value/deque/csv_deque.hpp	2011-03-18 18:01:24 EDT (Fri, 18 Mar 2011)
@@ -48,7 +48,7 @@
 
     template<typename T>
     struct csv_deque/*<-*/
-        : value_aux::result_of::deque<T>
+        : value_aux::result_of::csv_deque<T>
     {}/*->*/;
 
 }// result_of
Modified: sandbox/assign_v2/libs/assign/v2/test/ref/csv_array.cpp
==============================================================================
--- sandbox/assign_v2/libs/assign/v2/test/ref/csv_array.cpp	(original)
+++ sandbox/assign_v2/libs/assign/v2/test/ref/csv_array.cpp	2011-03-18 18:01:24 EDT (Fri, 18 Mar 2011)
@@ -30,12 +30,12 @@
             T x = 72, y = 31, z = 48;
             typedef as2::ref::nth_result_of::csv_array<3, T>::type ar_;
             ar_ ar = as2::ref::csv_array( x, y, z );
-            /*<-*/{/*->*/
+            {
                 T& a = ar[0]; T& b = ar[2];
-
+            
                 BOOST_ASSIGN_V2_CHECK( &a == &x );
                 BOOST_ASSIGN_V2_CHECK( &b == &z );
-            /*<-*/}/*->*/
+            }
             //]
             {
                 T& a = ar.front(); T& b = ar.back();
Modified: sandbox/assign_v2/libs/assign/v2/test/utility/chain.cpp
==============================================================================
--- sandbox/assign_v2/libs/assign/v2/test/utility/chain.cpp	(original)
+++ sandbox/assign_v2/libs/assign/v2/test/utility/chain.cpp	2011-03-18 18:01:24 EDT (Fri, 18 Mar 2011)
@@ -56,10 +56,8 @@
             array<word, 3> head; std::list<word> tail( 3 );
             copy( words, begin( head | as2::_chain( tail ) ) );
 
-            BOOST_ASSIGN_V2_CHECK( head.front() == "foo" );
-            BOOST_ASSIGN_V2_CHECK( head.back() == "baz" );
-            BOOST_ASSIGN_V2_CHECK( tail.front() == "qux" );
-            BOOST_ASSIGN_V2_CHECK( tail.back() == "grault" );
+            BOOST_ASSIGN_V2_CHECK( range::equal( head, as2::csv_deque<word>( "foo", "bar", "baz" ) ) );
+            BOOST_ASSIGN_V2_CHECK( range::equal( tail, as2::csv_deque<word>( "qux", "quux", "grault" ) ) );
             //]
         }
         // Boost.Assign.v2 containers
@@ -73,10 +71,8 @@
                 begin( consecutive5 && (/*<< rvalue! >>*/ as2::ref::csv_array( six, seven, eight ) | as2::ref::_get ) )
             );
 
-            BOOST_ASSIGN_V2_CHECK( consecutive5.front() == 1 );
-            BOOST_ASSIGN_V2_CHECK( consecutive5.back()  == 5 );
-            BOOST_ASSIGN_V2_CHECK( six                  == 6 );
-            BOOST_ASSIGN_V2_CHECK( eight                == 8 );
+            BOOST_ASSIGN_V2_CHECK( range::equal( consecutive5, as2::csv_deque( 1, 2, 3, 4, 5 ) ) );
+            BOOST_ASSIGN_V2_CHECK( six   == 6 ); BOOST_ASSIGN_V2_CHECK( seven == 7 ); BOOST_ASSIGN_V2_CHECK( eight == 8 );
             //]
         }
 
Modified: sandbox/assign_v2/libs/assign/v2/test/utility/conversion.cpp
==============================================================================
--- sandbox/assign_v2/libs/assign/v2/test/utility/conversion.cpp	(original)
+++ sandbox/assign_v2/libs/assign/v2/test/utility/conversion.cpp	2011-03-18 18:01:24 EDT (Fri, 18 Mar 2011)
@@ -16,6 +16,7 @@
 #include <boost/assign/v2/utility/conversion/check.hpp>
 #include <boost/assign/v2/ref/array.hpp>
 #include <boost/assign/v2/value/deque.hpp>
+#include <boost/range/algorithm/equal.hpp>
 #include <libs/assign/v2/test/utility/conversion.h>
 
 namespace test_assign_v2{
@@ -41,21 +42,22 @@
         {
             //[test_utility_conversion_vec_array
             std::vector<int> r( 3 ); r[0] = 72; r[1] = 31; r[2] = 48;
-            typedef array<int, 3> ar_; ar_ const& ar = ( r | as2::convert<ar_>() );
+            typedef array<int, 3> ar_; 
+            ar_ const& ar = ( r | as2::convert<ar_>() );
             
-            BOOST_ASSIGN_V2_CHECK( ar.front() == 72 );
-            BOOST_ASSIGN_V2_CHECK( ar.back() == 48 );
+            BOOST_ASSIGN_V2_CHECK( range::equal( ar, as2::csv_deque( 72, 31, 48 ) ) );
             //]
         }
         {
             //[test_utility_conversion_vec_stack
             std::vector<int> r( 3 ); r[0] = 72; r[1] = 31; r[2] = 48;
             std::stack<int> lifo = as2::converter( r );
+            
             BOOST_ASSIGN_V2_CHECK( lifo.top() == 48 );
             //]
         }
         {
-            //test_utility_conversion_stl
+            //[test_utility_conversion_stl
             typedef int T; typedef std::vector<T> R; R r( 3 ); r[0] = 72; r[1] = 31; r[2] = 48; 
             f< std::vector<T> >( as2::converter( r ), r );
             f< std::deque<T> >( as2::converter( r ), r );
@@ -73,6 +75,7 @@
                     ( as2::ref::csv_array( 4, 5, 6 ) | as2::convert<row_>() )
                     ( as2::ref::csv_array( 7, 8, 9 ) | as2::convert<row_>() )
             );
+            
             for(int i = 0; i < 9; i++)
             {
                 BOOST_ASSIGN_V2_CHECK( matrix3x3[ i / 3 ][ i % 3 ] == i + 1 );
@@ -83,27 +86,30 @@
         {
             //[test_utility_conversion_as2_deque_array
             std::vector<int> r( 3 ); r[0] = 72; r[1] = 31; r[2] = 48;
-            typedef array<int, 3> ar_; ar_ const& ar = ( as2::csv_deque( 72, 31, 48 ) | as2::convert<ar_>() );
+            typedef array<int, 3> ar_; 
+            ar_ const& ar = ( as2::csv_deque( 72, 31, 48 ) | as2::convert<ar_>() );
             
-            BOOST_ASSIGN_V2_CHECK( ar.front() == 72 );
-            BOOST_ASSIGN_V2_CHECK( ar.back() == 48 );
+            BOOST_ASSIGN_V2_CHECK( range::equal( ar, as2::csv_deque( 72, 31, 48 ) ) );
             //]
         }
         {
             //[test_utility_conversion_ref_array_stack
             std::stack<int> lifo = /*<<Notice unqualified (name lookup)>>*/converter( as2::ref::array( 72 )( 31 )( 48 ) );
+            
             BOOST_ASSIGN_V2_CHECK( lifo.top() == 48 );
             //]
         }
         {
             //[test_utility_conversion_ref_array_queue
             std::queue<int> fifo = /*<<Notice unqualified (name lookup)>>*/converter( as2::ref::csv_array( 72, 31, 48 ) );
+            
             BOOST_ASSIGN_V2_CHECK( fifo.front() == 72 );
             //]
         }
         {
             //[test_utility_conversion_as2_deque_stack
             std::stack<int> lifo = /*<<Notice unqualified (name lookup)>>*/converter( as2::csv_deque( 72, 31, 48 ) );
+            
             BOOST_ASSIGN_V2_CHECK( lifo.top() == 48 );
             //]
         }
Modified: sandbox/assign_v2/libs/assign/v2/test/utility/csv.cpp
==============================================================================
--- sandbox/assign_v2/libs/assign/v2/test/utility/csv.cpp	(original)
+++ sandbox/assign_v2/libs/assign/v2/test/utility/csv.cpp	2011-03-18 18:01:24 EDT (Fri, 18 Mar 2011)
@@ -13,6 +13,7 @@
 #include <boost/assign/v2/value/deque.hpp>
 #include <boost/assign/v2/value/put.hpp>
 #include <boost/assign/v2/value/modifier/push_front.hpp>
+#include <boost/range/algorithm/equal.hpp>
 #include <libs/assign/v2/test/utility/csv.h>
 
 namespace test_assign_v2{
@@ -28,8 +29,7 @@
             std::deque<int> cont;
             as2::csv( as2::put( cont ), 72, 31, 48 );
 
-            BOOST_ASSIGN_V2_CHECK( cont.front() == 72 );
-            BOOST_ASSIGN_V2_CHECK( cont.back() == 48 );
+            BOOST_ASSIGN_V2_CHECK( range::equal( cont, as2::csv_deque( 72, 31, 48 ) ) );
             //]
         }
         {
@@ -37,8 +37,7 @@
             std::deque<int> cont;
             as2::csv( as2::put( cont ) % as2::_push_front, 72, 31, 48 );
 
-            BOOST_ASSIGN_V2_CHECK( cont.front() == 48 );
-            BOOST_ASSIGN_V2_CHECK( cont.back() == 72 );
+            BOOST_ASSIGN_V2_CHECK( range::equal( cont, as2::csv_deque( 48, 31, 72 ) ) );
             //]
         }
         {
@@ -48,8 +47,7 @@
                 as2::csv( as2::deque<int>( as2::_nil ) % as2::_push_front, 72, 31, 48 )
             );
 
-            BOOST_ASSIGN_V2_CHECK( cont.front() == 48 );
-            BOOST_ASSIGN_V2_CHECK( cont.back() == 72 );
+            BOOST_ASSIGN_V2_CHECK( range::equal( cont, as2::csv_deque( 48, 31, 72 ) ) );
             //]
         }
     }
Modified: sandbox/assign_v2/libs/assign/v2/test/value/deque.cpp
==============================================================================
--- sandbox/assign_v2/libs/assign/v2/test/value/deque.cpp	(original)
+++ sandbox/assign_v2/libs/assign/v2/test/value/deque.cpp	2011-03-18 18:01:24 EDT (Fri, 18 Mar 2011)
@@ -7,13 +7,15 @@
 //  Boost Software License, Version 1.0. (See accompanying file           //
 //  LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)      //
 ////////////////////////////////////////////////////////////////////////////
+#include <deque>
 #include <string>
+#include <utility>
 #include <boost/mpl/assert.hpp>
 #include <boost/type_traits/is_same.hpp>
 #include <boost/assign/v2/detail/config/check.hpp>
 #include <boost/assign/v2/value/deque/csv_deque.hpp>
 #include <boost/assign/v2/value/deque/deque.hpp>
-
+#include <boost/range/algorithm/equal.hpp>
 #include <libs/assign/v2/test/value/deque.h>
 
 namespace test_assign_v2{
@@ -22,36 +24,64 @@
 
     void test()
     {
-
+    
         using namespace boost;
         namespace as2 = assign::v2;
         {
-            //[test_put_deque_ints
-            typedef as2::result_of::deque<int>::type C0;
-            C0 empty_cont = as2::deque<int>( as2::_nil );
-
-            BOOST_ASSIGN_V2_CHECK(  empty_cont( 72 )( 31 )( 48 ).front() == 72 );
-            BOOST_ASSIGN_V2_CHECK(  as2::deque<int>( 72 )( 31 )( 48 ).back() == 48 );
-
-            typedef as2::result_of::csv_deque<int>::type C1;
-            C1 cont = as2::csv_deque( 72, 31, 48 );
-
-            BOOST_ASSIGN_V2_CHECK(  cont.front() == 72 );
-            BOOST_ASSIGN_V2_CHECK(  as2::csv_deque( 72 )( 31 )( 48 ).back() == 48 );
-
-            BOOST_MPL_ASSERT(( is_same<C0, C1> ));
-
+            //[test_value_deque_pair
+            typedef std::string str_;
+            typedef std::pair<str_, str_> T;
+            typedef as2::result_of::deque<T>::type C;
+            C airports = as2::deque<T>("AUH", "Abu Dhabi")("JFK", "New York")("LHR", "Heathrow")( "PEK", "Beijing" );
+            
+            std::deque<T> benchmark;
+            benchmark.push_back( T("AUH", "Abu Dhabi") );
+            benchmark.push_back( T("JFK", "New York") );
+            benchmark.push_back( T("LHR", "Heathrow") );
+            benchmark.push_back( T("PEK", "Beijing") );
+            
+            range::equal( benchmark, airports );            
+            //]
+        }        {
+            //[test_value_deque_ints
+            typedef as2::result_of::deque<int>::type C1;
+            typedef as2::result_of::csv_deque<int>::type C2;
+            
+            BOOST_MPL_ASSERT(( is_same<C1, C2> ));
+
+            C1 empty_cont = as2::deque<int>( as2::_nil );
+            C1 cont1 = empty_cont( 72 )( 31 )( 48 );
+            C1 cont2 = as2::deque<int>( 72 )( 31 )( 48 );
+            C1 cont3 = as2::csv_deque( 72, 31, 48 );
+            C1 cont4 = as2::csv_deque( 72, 31 )( 48 );
+    
+            std::deque<int> benchmark; 
+            benchmark.push_back( 72 );
+            benchmark.push_back( 31 );
+            benchmark.push_back( 48 );
+
+            BOOST_ASSIGN_V2_CHECK( range::equal( benchmark, cont1 ) );
+            BOOST_ASSIGN_V2_CHECK( range::equal( benchmark, cont2 ) );
+            BOOST_ASSIGN_V2_CHECK( range::equal( benchmark, cont3 ) );
+            BOOST_ASSIGN_V2_CHECK( range::equal( benchmark, cont4 ) );
             //]
         }
         {
-            //[test_put_deque_str_literal
-            typedef std::string str_;
-            BOOST_ASSIGN_V2_CHECK(
-                str_( as2::deque<const char*>( "x" )( "y" )( "z" )[1] ) == "y"
-            );
-            BOOST_ASSIGN_V2_CHECK(
-                str_( as2::csv_deque( "x", "y", "z" )[1] ) == "y"
-            );
+            //[test_value_deque_str_literal
+            typedef as2::result_of::deque<char*>::type C1;
+            typedef as2::result_of::csv_deque<const char[2]>::type C2;
+            
+            BOOST_MPL_ASSERT(( is_same<C1, C2> ));
+            
+            C1  deque1 = as2::deque<char*>( "x" )( "y" )( "z" );
+            C2  deque2 = as2::csv_deque( "x", "y", "z" ); 
+            
+            std::deque<std::string> benchmark; 
+            benchmark.push_back( "x" ); benchmark.push_back( "y" ); benchmark.push_back( "z" );
+            
+            BOOST_ASSIGN_V2_CHECK( range::equal( benchmark, deque1 ) );
+            BOOST_ASSIGN_V2_CHECK( range::equal( benchmark, deque2 ) );
+            
             //]
         }
     }
Modified: sandbox/assign_v2/libs/assign/v2/test/value/fun.cpp
==============================================================================
--- sandbox/assign_v2/libs/assign/v2/test/value/fun.cpp	(original)
+++ sandbox/assign_v2/libs/assign/v2/test/value/fun.cpp	2011-03-18 18:01:24 EDT (Fri, 18 Mar 2011)
@@ -22,6 +22,7 @@
 #include <boost/lambda/lambda.hpp>
 #include <boost/lambda/construct.hpp>
 #include <boost/numeric/conversion/bounds.hpp>
+#include <boost/range/algorithm/equal.hpp>
 #include <boost/typeof/typeof.hpp>
 #include <libs/assign/v2/test/value/fun.h>
 
@@ -68,7 +69,7 @@
         using namespace lambda;
         namespace as2 = assign::v2;
         {
-            //[test_put_fun_math
+            //[test_value_fun_math
             std::vector<double> exponent;
             typedef function<double(double)> f_;
             (
@@ -82,7 +83,7 @@
             //]
         }
         {
-            //[test_put_fun_recursive
+            //[test_value_fun_recursive
             int i = 1, k = 1;
             BOOST_AUTO(
                 factorials, (
@@ -92,8 +93,7 @@
                 )/*<<Equivalent to `factorials( k *= i++ )` for [^i = 1, ..., 5]>>*/()()()()()
             );
 
-            BOOST_ASSIGN_V2_CHECK( factorials.front() == ( 1 ) );
-            BOOST_ASSIGN_V2_CHECK( factorials.back() == ( 120 ) );
+            BOOST_ASSIGN_V2_CHECK( range::equal( factorials, as2::csv_deque( 1, 2, 6, 24, 120 ) ) );
             //]
         }
 
Modified: sandbox/assign_v2/libs/assign/v2/test/value/modifier/iterate.cpp
==============================================================================
--- sandbox/assign_v2/libs/assign/v2/test/value/modifier/iterate.cpp	(original)
+++ sandbox/assign_v2/libs/assign/v2/test/value/modifier/iterate.cpp	2011-03-18 18:01:24 EDT (Fri, 18 Mar 2011)
@@ -18,6 +18,7 @@
 #include <boost/lambda/construct.hpp>
 #include <boost/mpl/assert.hpp>
 #include <boost/mpl/apply.hpp>
+#include <boost/range/algorithm/equal.hpp>
 #include <boost/type_traits/is_same.hpp>
 #include <boost/typeof/typeof.hpp>
 #include <libs/assign/v2/test/value/modifier/iterate.h>
@@ -35,7 +36,7 @@
         using namespace lambda;
         namespace as2 = assign::v2;
         {
-            //[test_put_modifier_iterate_meta
+            //[test_value_modifier_iterate_meta
             typedef as2::value_aux::keyword_iterate keyword_;
             typedef as2::modifier_tag::iterate_arg arg_;
             typedef as2::value_aux::modulo_modifier<keyword_, arg_> modulo_;
@@ -50,18 +51,15 @@
             //]
         }
         {
-            //[test_put_modifier_iterate_shifted
+            //[test_value_modifier_iterate_shifted
             typedef int T; array<T, 4> powers; powers[0] = 1; powers[1] = 10;
-            int shift = 2; ( as2::put( powers ) % ( as2::_iterate = var( shift )++ ) )( 100 )( 1000 );
+            int index = 2; ( as2::put( powers ) % ( as2::_iterate = var( index )++ ) )( 100 )( 1000 );
 
-            BOOST_ASSIGN_V2_CHECK( powers[0] == 1 );
-            BOOST_ASSIGN_V2_CHECK( powers[1] == 10 );
-            BOOST_ASSIGN_V2_CHECK( powers[2] == 100 );
-            BOOST_ASSIGN_V2_CHECK( powers[3] == 1000 );
+            BOOST_ASSIGN_V2_CHECK( range::equal( powers, as2::csv_deque( 1, 10, 100, 1000 ) ) );
             //]
         }
         {
-            //[test_put_modifier_iterate_meta_deque
+            //[test_value_modifier_iterate_meta_deque
             typedef as2::value_aux::keyword_iterate keyword_;
             typedef as2::modifier_tag::iterate_arg arg_;
             typedef as2::value_aux::modulo_modifier<keyword_, arg_> modulo_;
@@ -75,19 +73,16 @@
             //]
         }
         {
-            //[test_put_modifier_iterate_shifted_deque
+            //[test_value_modifier_iterate_shifted_deque
             as2::result_of::deque<int>::type missing_tail = as2::deque<int>( 1 )( 10 )( -1 )( -1 );
-            int shift = 2; 
+            int index = 2; 
             
             BOOST_AUTO(
                 powers,
-                ( missing_tail % ( as2::_iterate = var( shift )++ ) )( 100 )( 1000 )
+                ( missing_tail % ( as2::_iterate = var( index )++ ) )( 100 )( 1000 )
             );
 
-            BOOST_ASSIGN_V2_CHECK( powers[0] == 1 );
-            BOOST_ASSIGN_V2_CHECK( powers[1] == 10 );
-            BOOST_ASSIGN_V2_CHECK( powers[2] == 100 );
-            BOOST_ASSIGN_V2_CHECK( powers[3] == 1000 );
+            BOOST_ASSIGN_V2_CHECK( range::equal( powers, as2::csv_deque( 1, 10, 100, 1000 ) ) );
             //]
         }
     }
Modified: sandbox/assign_v2/libs/assign/v2/test/value/modifier/lookup.cpp
==============================================================================
--- sandbox/assign_v2/libs/assign/v2/test/value/modifier/lookup.cpp	(original)
+++ sandbox/assign_v2/libs/assign/v2/test/value/modifier/lookup.cpp	2011-03-18 18:01:24 EDT (Fri, 18 Mar 2011)
@@ -35,7 +35,7 @@
         using namespace lambda;
         namespace as2 = assign::v2;
         {
-            //[test_put_modifier_lookup_meta
+            //[test_value_modifier_lookup_meta
             typedef BOOST_TYPEOF(_1) arg_;
             typedef as2::value_aux::keyword_lookup keyword_;
             typedef as2::value_aux::modulo_modifier<keyword_, arg_> modulo_;
@@ -50,16 +50,19 @@
             //]
         }
         {
-            //[test_put_modifier_lookup_map
-            typedef std::map<std::string, int> C; C year; ( as2::put( year )( "feb", 28 )( "apr", 30 )( "jun", 30 )( "sep", 30 )( "nov", 30 ) 
-                % ( as2::_fun = _1 ) %  ( as2::_lookup = ( _1 = 31 ) ) )/*<<Calls `year["jan"] = 31` etc.>>*/( "jan" )( "mar" )( "may" )( "jul" )( "aug" )( "oct" )( "dec" );
+            //[test_value_modifier_lookup_map
+            typedef std::string str_; typedef std::map<str_, int> C; C year; 
+            ( 
+                as2::put( year )( "feb", 28 )( "apr", 30 )( "jun", 30 )( "sep", 30 )( "nov", 30 ) 
+                    % ( as2::_fun = _1 ) %  ( as2::_lookup = ( _1 = 31 ) ) 
+            )/*<<Calls `year["jan"] = 31` etc.>>*/( "jan" )( "mar" )( "may" )( "jul" )( "aug" )( "oct" )( "dec" );
             
             BOOST_ASSIGN_V2_CHECK( year["jan"] == 31 );
             BOOST_ASSIGN_V2_CHECK( year["dec"] == 31 );
             //]        
         }
         {
-            //[test_put_modifier_lookup_meta_deque
+            //[test_value_modifier_lookup_meta_deque
             typedef BOOST_TYPEOF(_1) arg_;
             typedef as2::value_aux::keyword_lookup keyword_;
             typedef as2::value_aux::modulo_modifier<keyword_, arg_> modulo_;
@@ -73,7 +76,7 @@
             //]
         }
         {
-            //[test_put_modifier_lookup_map_deque
+            //[test_value_modifier_lookup_map_deque
             BOOST_AUTO(
                 days_in_first_quater,
                 ( 
Modified: sandbox/assign_v2/libs/assign/v2/test/value/modifier/repeat.cpp
==============================================================================
--- sandbox/assign_v2/libs/assign/v2/test/value/modifier/repeat.cpp	(original)
+++ sandbox/assign_v2/libs/assign/v2/test/value/modifier/repeat.cpp	2011-03-18 18:01:24 EDT (Fri, 18 Mar 2011)
@@ -10,11 +10,11 @@
 #include <vector>
 #include <boost/typeof/typeof.hpp>
 #include <boost/assign/v2/detail/config/check.hpp>
-
 #include <boost/assign/v2/value/modifier/push_front.hpp>
 #include <boost/assign/v2/value/modifier/repeat.hpp>
 #include <boost/assign/v2/value/put.hpp>
 #include <boost/assign/v2/value/deque.hpp>
+#include <boost/range/algorithm/equal.hpp>
 #include <libs/assign/v2/test/value/modifier/repeat.h>
 
 namespace test_assign_v2{
@@ -27,26 +27,23 @@
         using namespace boost;
         namespace as2 = assign::v2;
         {
-            //[test_put_modifier_repeat_simple
+            //[test_value_modifier_repeat_simple
             std::vector<int> cont;
             ( as2::put( cont ) % ( as2::_repeat = 2  ) )( 72 )( 31 )( 48 );
 
-            BOOST_ASSIGN_V2_CHECK( cont.size() == 6 );
-            BOOST_ASSIGN_V2_CHECK( cont.front() == 72 );
-            BOOST_ASSIGN_V2_CHECK( cont.back() == 48 );
+            BOOST_ASSIGN_V2_CHECK( range::equal( cont, as2::csv_deque( 72, 72, 31, 31, 48, 48 ) ) );
             //]
         }
         {
-            //[test_put_modifier_repeat_compose
+            //[test_value_modifier_repeat_compose
             BOOST_AUTO(
                 cont, (
                     as2::deque<int>( as2::_nil ) % as2::_push_front % ( as2::_repeat = 2 )
                 )( 72 )( 31 )( 48 )
             );
-            BOOST_ASSIGN_V2_CHECK( boost::size( cont ) == 6 );
+            
+            BOOST_ASSIGN_V2_CHECK( range::equal( cont, as2::csv_deque( 48, 48, 31, 31, 72, 72 ) ) );
             //]
-            BOOST_ASSIGN_V2_CHECK( cont.front() == 48 );
-            BOOST_ASSIGN_V2_CHECK( cont.back() == 72 );
         }
     }
 
Modified: sandbox/assign_v2/libs/assign/v2/test/value/modifier/standard.cpp
==============================================================================
--- sandbox/assign_v2/libs/assign/v2/test/value/modifier/standard.cpp	(original)
+++ sandbox/assign_v2/libs/assign/v2/test/value/modifier/standard.cpp	2011-03-18 18:01:24 EDT (Fri, 18 Mar 2011)
@@ -18,6 +18,7 @@
 #include <boost/assign/v2/value/deque.hpp>
 #include <boost/range/begin.hpp>
 #include <boost/range/end.hpp>
+#include <boost/range/algorithm/equal.hpp>
 #include <boost/range/algorithm/lower_bound.hpp>
 #include <boost/range/algorithm/upper_bound.hpp>
 #include <boost/lambda/lambda.hpp>
@@ -45,7 +46,7 @@
 
         // PUT
         {
-            //[test_put_modifier_standard_meta
+            //[test_value_modifier_standard_meta
             typedef as2::result_of::put<std::vector<int> >::type put_;
             typedef as2::value_aux::keyword_standard_modifier keyword_;
             typedef as2::modifier_tag::push_front tag_;
@@ -57,7 +58,7 @@
             //]
         }
         {
-            //[test_put_modifier_push_front
+            //[test_value_modifier_push_front
             std::deque<double> sqrt2;
             ( as2::put( sqrt2 ) % as2::_push_front )( 1.41421 )( 1.4142 )( 1.414 )( 1.41 );
 
@@ -67,7 +68,7 @@
             //]
         }
         {
-            //[test_put_modifier_push
+            //[test_value_modifier_push
             std::queue<int> fifo; ( as2::put( fifo ) % as2::_push )( 72 )( 31 )( 48 );
 
             BOOST_ASSIGN_V2_CHECK( fifo.front() == 72 );
@@ -75,7 +76,7 @@
             //]
         }
         {
-            //[test_put_modifier_insert
+            //[test_value_modifier_insert
             std::set<std::string> letters; ( as2::put( letters ) % as2::_insert )( "d" )( "a" )( "c" )( "b" );
 
             BOOST_ASSIGN_V2_CHECK( letters.lower_bound( "a" ) == boost::begin( letters ) );
@@ -83,17 +84,16 @@
             //]
         }
         {
-            //[test_put_modifier_push_back
-            typedef int int_; std::list<int> list;
+            //[test_value_modifier_push_back
+            std::list<int> list;
             ( as2::put( list ) % as2::_push_back )( 72 )( 31 )( 48 );
 
-            BOOST_ASSIGN_V2_CHECK( list.front() == 72 );
-            BOOST_ASSIGN_V2_CHECK( list.back() == 48 );
+            BOOST_ASSIGN_V2_CHECK( range::equal( list, as2::csv_deque( 72, 31, 48 ) ) );
             //]
         }
         // DEQUE
         {
-            //[test_put_modifier_meta_deque
+            //[test_value_modifier_meta_deque
             typedef as2::result_of::deque<int>::type put_;
             typedef as2::value_aux::keyword_standard_modifier keyword_;
             typedef as2::modifier_tag::push_front tag_;
@@ -106,14 +106,13 @@
             //]
         }
         {
-            //[test_put_modifier_push_front_deque
+            //[test_value_modifier_push_front_deque
             BOOST_AUTO(
                 powers,
                 ( as2::deque<int>( as2::_nil ) % as2::_push_front )( 16 )( 8 )( 4 )( 2 )( 1 )
             );
 
-            BOOST_ASSIGN_V2_CHECK( powers[0] == 1 );
-            BOOST_ASSIGN_V2_CHECK( powers[4] == 16 );
+            BOOST_ASSIGN_V2_CHECK( range::equal( powers, as2::csv_deque( 1, 2, 4, 8, 16 ) ) );
             //]
         }
     }
Modified: sandbox/assign_v2/libs/assign/v2/test/value/pipe/fun.cpp
==============================================================================
--- sandbox/assign_v2/libs/assign/v2/test/value/pipe/fun.cpp	(original)
+++ sandbox/assign_v2/libs/assign/v2/test/value/pipe/fun.cpp	2011-03-18 18:01:24 EDT (Fri, 18 Mar 2011)
@@ -37,6 +37,7 @@
         {
             //[csv_pipe_modulo_fun_math
             int i = 0, k = 1; std::list<int> factorials;
+            
             BOOST_ASSIGN_V2_CHECK(
                 range::equal(
                     factorials | ( 
Modified: sandbox/assign_v2/libs/assign/v2/test/value/pipe/modifier/iterate.cpp
==============================================================================
--- sandbox/assign_v2/libs/assign/v2/test/value/pipe/modifier/iterate.cpp	(original)
+++ sandbox/assign_v2/libs/assign/v2/test/value/pipe/modifier/iterate.cpp	2011-03-18 18:01:24 EDT (Fri, 18 Mar 2011)
@@ -14,6 +14,7 @@
 #include <boost/assign/v2/value/deque/csv_deque.hpp>
 #include <boost/array.hpp>
 #include <boost/lambda/lambda.hpp>
+#include <boost/range/algorithm/equal.hpp>
 #include <libs/assign/v2/test/value/pipe/modifier/iterate.h>
 
 namespace test_assign_v2{
Modified: sandbox/assign_v2/libs/assign/v2/test/value/pipe/modifier/lookup.cpp
==============================================================================
--- sandbox/assign_v2/libs/assign/v2/test/value/pipe/modifier/lookup.cpp	(original)
+++ sandbox/assign_v2/libs/assign/v2/test/value/pipe/modifier/lookup.cpp	2011-03-18 18:01:24 EDT (Fri, 18 Mar 2011)
@@ -12,7 +12,6 @@
 #include <boost/lambda/lambda.hpp>
 #include <boost/typeof/typeof.hpp>
 #include <boost/assign/v2/detail/config/check.hpp>
-
 #include <boost/assign/v2/value/fun.hpp>
 #include <boost/assign/v2/value/modifier/lookup.hpp>
 #include <boost/assign/v2/value/pipe/put.hpp>
Modified: sandbox/assign_v2/libs/assign/v2/test/value/pipe/modifier/repeat.cpp
==============================================================================
--- sandbox/assign_v2/libs/assign/v2/test/value/pipe/modifier/repeat.cpp	(original)
+++ sandbox/assign_v2/libs/assign/v2/test/value/pipe/modifier/repeat.cpp	2011-03-18 18:01:24 EDT (Fri, 18 Mar 2011)
@@ -9,7 +9,6 @@
 //////////////////////////////////////////////////////////////////////////////
 #include <vector>
 #include <boost/assign/v2/detail/config/check.hpp>
-
 #include <boost/assign/v2/value/modifier/repeat.hpp>
 #include <boost/assign/v2/value/pipe/put.hpp>
 #include <boost/assign/v2/value/deque.hpp>
Modified: sandbox/assign_v2/libs/assign/v2/test/value/pipe/modifier/standard.cpp
==============================================================================
--- sandbox/assign_v2/libs/assign/v2/test/value/pipe/modifier/standard.cpp	(original)
+++ sandbox/assign_v2/libs/assign/v2/test/value/pipe/modifier/standard.cpp	2011-03-18 18:01:24 EDT (Fri, 18 Mar 2011)
@@ -16,7 +16,6 @@
 #include <boost/range/begin.hpp>
 #include <boost/range/iterator.hpp>
 #include <boost/assign/v2/detail/config/check.hpp>
-
 #include <boost/assign/v2/value/modifier/standard.hpp>
 #include <boost/assign/v2/value/pipe/csv_put.hpp>
 #include <boost/assign/v2/value/pipe/put.hpp>
@@ -41,7 +40,7 @@
         // ------------------------------------------------------------------- //
 
         {
-            //[test_put_pipe_modifier_push_front
+            //[test_value_pipe_modifier_push_front
             std::deque<int> powers; int front = (
                 powers | ( as2::_csv_put % as2::_push_front )( 16, 8, 4, 2, 1 )
             ).front();
@@ -51,7 +50,7 @@
             //]
         }
         {
-            //[test_put_pipe_modifier_push
+            //[test_value_pipe_modifier_push
             typedef int int_; std::queue<int_> fifo; int_ front = ( 
                 fifo | ( as2::_put % as2::_push )( 72 )( 31 )( 48 ) 
             ).front();
@@ -61,7 +60,7 @@
             //]
         }
         {
-            //[test_put_pipe_modifier_insert
+            //[test_value_pipe_modifier_insert
             typedef std::set<double> doubles_; doubles_ sqrt2;
             range_iterator<doubles_>::type lower = ( 
                 sqrt2 | ( as2::_put % as2::_insert )( 1.414 )( 1.41421 )( 1.41 )( 1.4142 ) 
Modified: sandbox/assign_v2/libs/assign/v2/test/value/pipe/put.cpp
==============================================================================
--- sandbox/assign_v2/libs/assign/v2/test/value/pipe/put.cpp	(original)
+++ sandbox/assign_v2/libs/assign/v2/test/value/pipe/put.cpp	2011-03-18 18:01:24 EDT (Fri, 18 Mar 2011)
@@ -30,12 +30,12 @@
         using namespace boost;
         namespace as2 = assign::v2;
         {
-            //[test_put_pipe_put_str_literal
+            //[test_value_pipe_put_str_literal
             typedef const char* T; typedef std::string str_; std::deque<T> cont;
             BOOST_ASSIGN_V2_CHECK( 
                 boost::range::equal(
                     cont | /*<<`"x"`, `"y"` and `"z"` are kept as `const char(&)[2]`>>*/as2::_csv_put( "x", "y", "z" ),
-                    as2::csv_deque( "x" )( "y" )( "z" )
+                    as2::csv_deque( "x", "y", "z" )
                 )
             );
             BOOST_ASSIGN_V2_CHECK( str_( cont[1] ) == "y" );
@@ -43,7 +43,7 @@
             //]
         }
         {
-            //[test_put_pipe_put_intervals
+            //[test_value_pipe_put_intervals
             boost::array<int, 2> interval; boost::array<int, 6> all6;
             BOOST_ASSIGN_V2_CHECK(
                 boost::range::equal(
Modified: sandbox/assign_v2/libs/assign/v2/test/value/ptr.cpp
==============================================================================
--- sandbox/assign_v2/libs/assign/v2/test/value/ptr.cpp	(original)
+++ sandbox/assign_v2/libs/assign/v2/test/value/ptr.cpp	2011-03-18 18:01:24 EDT (Fri, 18 Mar 2011)
@@ -28,7 +28,7 @@
         namespace as2 = boost::assign::v2;
 
         {
-            //[test_put_ptr_array
+            //[test_value_ptr_array
             typedef int T;
             T x = 1, y = 2, z = 3; boost::ptr_array<T, 3> cont;
             as2::put( cont )( x )( y )( z );
@@ -38,7 +38,7 @@
             //]
         }
         {
-            //[test_put_ptr_deque
+            //[test_value_ptr_deque
             typedef int T; T x = 1, y = 2, z = 0; boost::ptr_deque<T> cont;
             as2::put( cont )( x )( y )( z );
 
@@ -47,7 +47,7 @@
             //]
         }
         {
-            //[test_put_ptr_list
+            //[test_value_ptr_list
             typedef int T; T x = 1, y = 2, z = 0; boost::ptr_list<T> cont;
             as2::put( cont )( x )( y )( z );
 
@@ -56,7 +56,7 @@
             //]
         }
         {
-            //[test_put_ptr_vector
+            //[test_value_ptr_vector
             typedef int T; T x = 1, y = 2, z = 0; boost::ptr_vector<T> cont;
             as2::put( cont )( x )( y )( z );
 
Modified: sandbox/assign_v2/libs/assign/v2/test/value/put.cpp
==============================================================================
--- sandbox/assign_v2/libs/assign/v2/test/value/put.cpp	(original)
+++ sandbox/assign_v2/libs/assign/v2/test/value/put.cpp	2011-03-18 18:01:24 EDT (Fri, 18 Mar 2011)
@@ -42,7 +42,7 @@
         namespace as2 = assign::v2;
 
         {
-             //[test_put_put_bitset
+             //[test_value_put_bitset
             typedef std::string str_; typedef std::bitset<3> data_; /*<<Keep in mind that although `data_( str_( "011" ) )`, for instance, is valid, `consecutive.push_back( str_( "011" ) )` isn't (GCC4.2)>>*/ std::vector<data_> consecutive;
             /*<<Calls `consecutive.push_back( data_( t ) );` for [^t = ]`str_( "000" )`[^, ..., ]`str_( "111" )`>>*/as2::put( consecutive )
                 ( str_( "000" ) )( str_( "001" ) )
@@ -58,7 +58,7 @@
             // unsigned i else warning comparison between signed & unsigned
         }
         {
-             //[test_put_put_numeric_kb
+             //[test_value_put_numeric_kb
             std::vector<int> numeric( 10 ); iota( numeric, 0 ); typedef std::string str_;
             typedef variant< int, str_ > data_; array<data_, 16> numeric_kb;
             as2::put( numeric_kb )
@@ -74,7 +74,7 @@
             BOOST_ASSIGN_V2_CHECK(  get<int>( numeric_kb.back() ) == 9 );
         }
         {
-            //[test_put_put_ragged
+            //[test_value_put_ragged
             typedef double data_; typedef std::vector<data_> variable_size_;
             variable_size_ a( 3 ); a[0] = 0.71; a[1] = 0.63; a[2] = 0.85;
             variable_size_ b( 4 ); b[0] = 0.61; b[1] = 0.69; b[2] = 0.92; b[3] = 0.55;
@@ -101,7 +101,7 @@
             BOOST_ASSIGN_V2_CHECK(  fabs( ragged[2].back()  + 99.99     ) < eps );
         }
         {
-            //[test_put_put_stl
+            //[test_value_put_stl
             std::queue<int> adapter; /*<<Calls `adapter.push( t )` for [^t = 72, 31, 48]>>*/as2::put( adapter )( 72 )( 31 )( 48 );
             array<int, 3> array; /*<<Calls `array[i] = t` for [^( i, t ) = ( 0, 72 ), ( 1, 31 ), ( 2, 48 )]>>*/as2::put( array )( 72 )( 31 )( 48 );
             std::set<int> assoc; /*<<Calls `assoc.insert( t )` for [^t = 72, 31, 48]>>*/as2::put( assoc )( 72 )( 31 )( 48 );
@@ -118,7 +118,7 @@
         }
         {
             // http://bioinfo.mbb.yale.edu/~mbg/dom/fun3/area-codes/
-            //[test_put_put_area_codes
+            //[test_value_put_area_codes
             typedef const char us_state_ [3]; us_state_ ct = "CT", nj = "NJ", ny = "NY";
             typedef int area_code_; typedef tuple<us_state_/*<<Notice the [*reference]>>*/&,  area_code_> data_; std::deque< data_ > tri_state_area;
             /*<<Calls `tri_state.push_back( data_( s, c ) )` for [^( s, c ) =( ny, 212 )...( ct, 203 )]>>*/
Modified: sandbox/assign_v2/libs/assign/v2/tutorial.cpp
==============================================================================
--- sandbox/assign_v2/libs/assign/v2/tutorial.cpp	(original)
+++ sandbox/assign_v2/libs/assign/v2/tutorial.cpp	2011-03-18 18:01:24 EDT (Fri, 18 Mar 2011)
@@ -48,6 +48,7 @@
             typedef std::string T; ptr_set<T> assoc;
             T x = "isomer", y = "ephemeral", z = "prosaic";
             csv( put( assoc ), x, z, y );
+            
             assert( assoc.count( x ) == 1 );
             assert( assoc.count( z ) == 1 );
             //]
@@ -55,7 +56,8 @@
         {
             //[tutorial_piping
             using namespace lambda;
-            std::deque<int> cont; range::stable_partition( cont | _csv_put( 0, 1, 2, 3, 4, 5 ), _1 % 2 );
+            std::deque<int> cont; 
+            range::stable_partition( cont | _csv_put( 0, 1, 2, 3, 4, 5 ), _1 % 2 );
             //]
             //[tutorial_container_generation
             assert( range::equal( cont, csv_deque(1, 3, 5, 0, 2, 4) ) );
@@ -65,6 +67,7 @@
             //[tutorial_ref_array
             int x = 4, y = 6, z = -1;
             int const& max = *max_element( ref::csv_array( x, y, z ) );
+            
             assert( &max == &y );
             //]
         }
@@ -76,30 +79,36 @@
                 consecutive8,
                 begin( consecutive5 | _chain( ref::csv_array( six, seven, eight ) | ref::_get ) )
             );
-            assert(consecutive5[0] == 1); assert(consecutive5[4] == 5);
-            assert( six == 6 ); assert( eight == 8 );
+
+            assert( range::equal( consecutive5, csv_deque(1, 2, 3, 4, 5) ) );
+            assert( six == 6 ); assert( seven == 7 ); assert( eight == 8 );
             //]
         }
         {
             //[tutorial_conversion
             std::queue<int> fifo = converter( csv_deque( 72, 31, 48 ) );
-            assert( fifo.front() == 72 );
+            
+            assert( fifo.front() == 72 ); assert( fifo.back() == 48 );
             //]
         }
         {
             //[tutorial_arg_forwarding
-            std::map<std::string, int> map; put( map )( "foo", 1 )( "bar", 2 )( "baz", 3 );
-            assert( map["bar"] == 2 );
+            std::map<std::string, int> map; 
+            put( map )( "foo", 1 )( "bar", 2 )( "baz", 3 );
+            
+            assert( map["bar"] = 2 );
             //]
         }
         {
             //[tutorial_parametrization
             using namespace lambda;
             typedef int T; array<T, 4> powers = converter( csv_deque( 1, 10, -1, -1 ) );
-            std::size_t shift = 2; ( put( powers ) % ( _iterate = var( shift )++ ) )( 100 )( 1000 );
+            std::size_t index = 2; ( put( powers ) % ( _iterate = var( index )++ ) )( 100 )( 1000 );
 
-            int value = 1; 
-            for(shift = 0; shift < powers.size(); shift++){ assert( powers[shift] == value ); value *=10; }
+            for(int value = 1, index = 0; index < powers.size(); index++, value *=10 )
+            { 
+                assert( powers[index] == value ); 
+            }
             //]
         }
     }