$include_dir="/home/hyper-archives/boost-commit/include"; include("$include_dir/msg-header.inc") ?>
Subject: [Boost-commit] svn:boost r54874 - in sandbox/SOC/2009/fusion: boost/fusion boost/fusion/adapted boost/fusion/adapted/detail/array boost/fusion/adapted/detail/boost_tuple boost/fusion/adapted/detail/mpl boost/fusion/adapted/detail/struct boost/fusion/adapted/struct boost/fusion/container boost/fusion/container/list boost/fusion/container/list/detail/cons boost/fusion/container/list/detail/list boost/fusion/container/map boost/fusion/container/map/detail boost/fusion/container/set boost/fusion/container/set/detail boost/fusion/container/vector boost/fusion/container/vector/detail boost/fusion/container/vector/detail/variadic_templates boost/fusion/functional/adapter boost/fusion/functional/adapter/detail boost/fusion/functional/generation/detail boost/fusion/functional/invocation boost/fusion/iterator boost/fusion/support boost/fusion/support/detail boost/fusion/support/detail/iterator_adapter boost/fusion/tuple boost/fusion/view boost/fusion/view/filter_view boost/fusion/view/filter_view/detail boost/fusion/view/iterator_range boost/fusion/view/iterator_range/detail boost/fusion/view/joint_view boost/fusion/view/joint_view/detail boost/fusion/view/reverse_view boost/fusion/view/reverse_view/detail boost/fusion/view/single_view boost/fusion/view/single_view/detail boost/fusion/view/transform_view boost/fusion/view/transform_view/detail boost/fusion/view/zip_view boost/fusion/view/zip_view/detail libs/fusion/doc libs/fusion/example/cookbook libs/fusion/example/performance libs/fusion/test libs/fusion/test/functional libs/fusion/test/sequence
From: mr.chr.schmidt_at_[hidden]
Date: 2009-07-10 18:07:21
Author: cschmidt
Date: 2009-07-10 18:07:00 EDT (Fri, 10 Jul 2009)
New Revision: 54874
URL: http://svn.boost.org/trac/boost/changeset/54874
Log:
(style) cleanup
Added:
   sandbox/SOC/2009/fusion/boost/fusion/container/list/detail/cons/cons_fwd.hpp   (contents, props changed)
   sandbox/SOC/2009/fusion/boost/fusion/container/list/detail/cons/cons_iterator.hpp   (contents, props changed)
   sandbox/SOC/2009/fusion/boost/fusion/container/vector/detail/vector_iterator.hpp   (contents, props changed)
   sandbox/SOC/2009/fusion/boost/fusion/support/detail/iterator_adapter/iterator_adapter_fwd.hpp   (contents, props changed)
   sandbox/SOC/2009/fusion/boost/fusion/view/filter_view/detail/filter_view_fwd.hpp   (contents, props changed)
   sandbox/SOC/2009/fusion/boost/fusion/view/filter_view/detail/filter_view_iterator.hpp   (contents, props changed)
   sandbox/SOC/2009/fusion/boost/fusion/view/iterator_range/detail/iterator_range_fwd.hpp   (contents, props changed)
   sandbox/SOC/2009/fusion/boost/fusion/view/joint_view/detail/joint_view_fwd.hpp   (contents, props changed)
   sandbox/SOC/2009/fusion/boost/fusion/view/joint_view/detail/joint_view_iterator.hpp   (contents, props changed)
   sandbox/SOC/2009/fusion/boost/fusion/view/reverse_view/detail/reverse_view_fwd.hpp   (contents, props changed)
   sandbox/SOC/2009/fusion/boost/fusion/view/reverse_view/detail/reverse_view_iterator.hpp   (contents, props changed)
   sandbox/SOC/2009/fusion/boost/fusion/view/single_view/detail/single_view_fwd.hpp   (contents, props changed)
   sandbox/SOC/2009/fusion/boost/fusion/view/single_view/detail/single_view_iterator.hpp   (contents, props changed)
   sandbox/SOC/2009/fusion/boost/fusion/view/transform_view/detail/transform_view_iterator.hpp   (contents, props changed)
   sandbox/SOC/2009/fusion/boost/fusion/view/zip_view/detail/zip_view_fwd.hpp   (contents, props changed)
   sandbox/SOC/2009/fusion/boost/fusion/view/zip_view/detail/zip_view_iterator.hpp   (contents, props changed)
Removed:
   sandbox/SOC/2009/fusion/boost/fusion/container/list/cons_iterator.hpp
   sandbox/SOC/2009/fusion/boost/fusion/container/vector/vector_iterator.hpp
   sandbox/SOC/2009/fusion/boost/fusion/support/detail/is_mpl_sequence.hpp
   sandbox/SOC/2009/fusion/boost/fusion/view/filter_view/filter_view_iterator.hpp
   sandbox/SOC/2009/fusion/boost/fusion/view/joint_view/joint_view_iterator.hpp
   sandbox/SOC/2009/fusion/boost/fusion/view/reverse_view/reverse_view_iterator.hpp
   sandbox/SOC/2009/fusion/boost/fusion/view/single_view/single_view_iterator.hpp
   sandbox/SOC/2009/fusion/boost/fusion/view/transform_view/transform_view_iterator.hpp
   sandbox/SOC/2009/fusion/boost/fusion/view/zip_view/zip_view_iterator.hpp
   sandbox/SOC/2009/fusion/boost/fusion/view/zip_view/zip_view_iterator_fwd.hpp
Text files modified: 
   sandbox/SOC/2009/fusion/boost/fusion/adapted.hpp                                                |     5                                         
   sandbox/SOC/2009/fusion/boost/fusion/adapted/array.hpp                                          |     4                                         
   sandbox/SOC/2009/fusion/boost/fusion/adapted/boost_tuple.hpp                                    |     6                                         
   sandbox/SOC/2009/fusion/boost/fusion/adapted/detail/array/array_iterator.hpp                    |     2                                         
   sandbox/SOC/2009/fusion/boost/fusion/adapted/detail/array/at_impl.hpp                           |    49 ++++++--------                          
   sandbox/SOC/2009/fusion/boost/fusion/adapted/detail/array/begin_impl.hpp                        |    37 ++++------                              
   sandbox/SOC/2009/fusion/boost/fusion/adapted/detail/array/category_of_impl.hpp                  |     5                                         
   sandbox/SOC/2009/fusion/boost/fusion/adapted/detail/array/end_impl.hpp                          |    49 ++++++--------                          
   sandbox/SOC/2009/fusion/boost/fusion/adapted/detail/array/is_sequence_impl.hpp                  |    34 ++++------                              
   sandbox/SOC/2009/fusion/boost/fusion/adapted/detail/array/is_view_impl.hpp                      |    28 +++----                                 
   sandbox/SOC/2009/fusion/boost/fusion/adapted/detail/array/size_impl.hpp                         |    29 +++-----                                
   sandbox/SOC/2009/fusion/boost/fusion/adapted/detail/array/value_at_impl.hpp                     |    27 +++----                                 
   sandbox/SOC/2009/fusion/boost/fusion/adapted/detail/boost_tuple/at_impl.hpp                     |    53 +++++++--------                         
   sandbox/SOC/2009/fusion/boost/fusion/adapted/detail/boost_tuple/begin_impl.hpp                  |    35 ++++------                              
   sandbox/SOC/2009/fusion/boost/fusion/adapted/detail/boost_tuple/boost_tuple_iterator.hpp        |     4                                         
   sandbox/SOC/2009/fusion/boost/fusion/adapted/detail/boost_tuple/category_of_impl.hpp            |     1                                         
   sandbox/SOC/2009/fusion/boost/fusion/adapted/detail/boost_tuple/end_impl.hpp                    |    79 +++++++++++------------                 
   sandbox/SOC/2009/fusion/boost/fusion/adapted/detail/boost_tuple/is_sequence_impl.hpp            |    27 +++----                                 
   sandbox/SOC/2009/fusion/boost/fusion/adapted/detail/boost_tuple/is_view_impl.hpp                |    27 +++----                                 
   sandbox/SOC/2009/fusion/boost/fusion/adapted/detail/boost_tuple/size_impl.hpp                   |    35 ++++------                              
   sandbox/SOC/2009/fusion/boost/fusion/adapted/detail/boost_tuple/value_at_impl.hpp               |    33 ++++-----                               
   sandbox/SOC/2009/fusion/boost/fusion/adapted/detail/mpl/advance_impl.hpp                        |    49 ++++++--------                          
   sandbox/SOC/2009/fusion/boost/fusion/adapted/detail/mpl/at_impl.hpp                             |    39 +++++------                             
   sandbox/SOC/2009/fusion/boost/fusion/adapted/detail/mpl/begin_impl.hpp                          |    49 ++++++--------                          
   sandbox/SOC/2009/fusion/boost/fusion/adapted/detail/mpl/category_of_impl.hpp                    |    41 +++++-------                            
   sandbox/SOC/2009/fusion/boost/fusion/adapted/detail/mpl/deref_impl.hpp                          |    39 +++++------                             
   sandbox/SOC/2009/fusion/boost/fusion/adapted/detail/mpl/distance_impl.hpp                       |    35 ++++------                              
   sandbox/SOC/2009/fusion/boost/fusion/adapted/detail/mpl/empty_impl.hpp                          |    27 +++----                                 
   sandbox/SOC/2009/fusion/boost/fusion/adapted/detail/mpl/end_impl.hpp                            |    47 ++++++--------                          
   sandbox/SOC/2009/fusion/boost/fusion/adapted/detail/mpl/equal_to_impl.hpp                       |    35 ++++------                              
   sandbox/SOC/2009/fusion/boost/fusion/adapted/detail/mpl/has_key_impl.hpp                        |    27 +++----                                 
   sandbox/SOC/2009/fusion/boost/fusion/adapted/detail/mpl/is_sequence_impl.hpp                    |    27 +++----                                 
   sandbox/SOC/2009/fusion/boost/fusion/adapted/detail/mpl/is_view_impl.hpp                        |    27 +++----                                 
   sandbox/SOC/2009/fusion/boost/fusion/adapted/detail/mpl/mpl_iterator.hpp                        |     3                                         
   sandbox/SOC/2009/fusion/boost/fusion/adapted/detail/mpl/next_impl.hpp                           |    47 ++++++--------                          
   sandbox/SOC/2009/fusion/boost/fusion/adapted/detail/mpl/prior_impl.hpp                          |    47 ++++++--------                          
   sandbox/SOC/2009/fusion/boost/fusion/adapted/detail/mpl/size_impl.hpp                           |    27 +++----                                 
   sandbox/SOC/2009/fusion/boost/fusion/adapted/detail/mpl/value_at_impl.hpp                       |    27 +++----                                 
   sandbox/SOC/2009/fusion/boost/fusion/adapted/detail/mpl/value_of_impl.hpp                       |    27 +++----                                 
   sandbox/SOC/2009/fusion/boost/fusion/adapted/detail/struct/adapt_assoc_struct.hpp               |     7 -                                       
   sandbox/SOC/2009/fusion/boost/fusion/adapted/detail/struct/adapt_base.hpp                       |     7 -                                       
   sandbox/SOC/2009/fusion/boost/fusion/adapted/detail/struct/at_impl.hpp                          |    61 ++++++++----------                      
   sandbox/SOC/2009/fusion/boost/fusion/adapted/detail/struct/at_key_impl.hpp                      |    45 ++++++-------                           
   sandbox/SOC/2009/fusion/boost/fusion/adapted/detail/struct/begin_impl.hpp                       |    35 ++++------                              
   sandbox/SOC/2009/fusion/boost/fusion/adapted/detail/struct/category_of_impl.hpp                 |     1                                         
   sandbox/SOC/2009/fusion/boost/fusion/adapted/detail/struct/end_impl.hpp                         |    49 ++++++--------                          
   sandbox/SOC/2009/fusion/boost/fusion/adapted/detail/struct/extension.hpp                        |    29 +++++---                                
   sandbox/SOC/2009/fusion/boost/fusion/adapted/detail/struct/has_key_impl.hpp                     |    47 ++++++--------                          
   sandbox/SOC/2009/fusion/boost/fusion/adapted/detail/struct/is_sequence_impl.hpp                 |    27 +++----                                 
   sandbox/SOC/2009/fusion/boost/fusion/adapted/detail/struct/is_view_impl.hpp                     |    27 +++----                                 
   sandbox/SOC/2009/fusion/boost/fusion/adapted/detail/struct/size_impl.hpp                        |    33 +++------                               
   sandbox/SOC/2009/fusion/boost/fusion/adapted/detail/struct/struct_iterator.hpp                  |     2                                         
   sandbox/SOC/2009/fusion/boost/fusion/adapted/detail/struct/value_at_impl.hpp                    |    33 +++------                               
   sandbox/SOC/2009/fusion/boost/fusion/adapted/detail/struct/value_at_key_impl.hpp                |    33 ++++-----                               
   sandbox/SOC/2009/fusion/boost/fusion/adapted/mpl.hpp                                            |     2                                         
   sandbox/SOC/2009/fusion/boost/fusion/adapted/std_pair.hpp                                       |    75 +++++++++-------------                  
   sandbox/SOC/2009/fusion/boost/fusion/adapted/struct.hpp                                         |    14 ++--                                    
   sandbox/SOC/2009/fusion/boost/fusion/adapted/struct/adapt_assoc_struct.hpp                      |     2                                         
   sandbox/SOC/2009/fusion/boost/fusion/adapted/struct/adapt_struct.hpp                            |     2                                         
   sandbox/SOC/2009/fusion/boost/fusion/container/list.hpp                                         |     2                                         
   sandbox/SOC/2009/fusion/boost/fusion/container/list/cons.hpp                                    |    20 ++++--                                  
   sandbox/SOC/2009/fusion/boost/fusion/container/list/convert.hpp                                 |     3                                         
   sandbox/SOC/2009/fusion/boost/fusion/container/list/detail/cons/at_impl.hpp                     |    18 ++---                                   
   sandbox/SOC/2009/fusion/boost/fusion/container/list/detail/cons/begin_impl.hpp                  |    38 ++++-------                             
   sandbox/SOC/2009/fusion/boost/fusion/container/list/detail/cons/convert_impl.hpp                |    51 +++++++--------                         
   sandbox/SOC/2009/fusion/boost/fusion/container/list/detail/cons/deref_impl.hpp                  |    53 +++++++--------                         
   sandbox/SOC/2009/fusion/boost/fusion/container/list/detail/cons/empty_impl.hpp                  |    32 +++------                               
   sandbox/SOC/2009/fusion/boost/fusion/container/list/detail/cons/end_impl.hpp                    |    49 +++++---------                          
   sandbox/SOC/2009/fusion/boost/fusion/container/list/detail/cons/equal_to_impl.hpp               |    47 ++++++--------                          
   sandbox/SOC/2009/fusion/boost/fusion/container/list/detail/cons/next_impl.hpp                   |    63 ++++++++-----------                     
   sandbox/SOC/2009/fusion/boost/fusion/container/list/detail/cons/value_at_impl.hpp               |    53 +++++++--------                         
   sandbox/SOC/2009/fusion/boost/fusion/container/list/detail/cons/value_of_impl.hpp               |    38 ++++------                              
   sandbox/SOC/2009/fusion/boost/fusion/container/list/detail/list/at_impl.hpp                     |    52 +++++++--------                         
   sandbox/SOC/2009/fusion/boost/fusion/container/list/detail/list/begin_impl.hpp                  |    56 ++++++++---------                       
   sandbox/SOC/2009/fusion/boost/fusion/container/list/detail/list/convert_impl.hpp                |    57 ++++++++---------                       
   sandbox/SOC/2009/fusion/boost/fusion/container/list/detail/list/end_impl.hpp                    |    56 ++++++++---------                       
   sandbox/SOC/2009/fusion/boost/fusion/container/list/detail/list/value_at_impl.hpp               |    43 +++++-------                            
   sandbox/SOC/2009/fusion/boost/fusion/container/list/list.hpp                                    |     1                                         
   sandbox/SOC/2009/fusion/boost/fusion/container/list/list_fwd.hpp                                |     3                                         
   sandbox/SOC/2009/fusion/boost/fusion/container/map/convert.hpp                                  |     3                                         
   sandbox/SOC/2009/fusion/boost/fusion/container/map/detail/at_key_impl.hpp                       |    46 ++++++--------                          
   sandbox/SOC/2009/fusion/boost/fusion/container/map/detail/begin_impl.hpp                        |    45 +++++--------                           
   sandbox/SOC/2009/fusion/boost/fusion/container/map/detail/convert_impl.hpp                      |    63 ++++++++----------                      
   sandbox/SOC/2009/fusion/boost/fusion/container/map/detail/end_impl.hpp                          |    45 +++++--------                           
   sandbox/SOC/2009/fusion/boost/fusion/container/map/detail/value_at_key_impl.hpp                 |    31 ++++-----                               
   sandbox/SOC/2009/fusion/boost/fusion/container/map/map.hpp                                      |    17 ++--                                    
   sandbox/SOC/2009/fusion/boost/fusion/container/map/map_fwd.hpp                                  |     2                                         
   sandbox/SOC/2009/fusion/boost/fusion/container/set/convert.hpp                                  |     3                                         
   sandbox/SOC/2009/fusion/boost/fusion/container/set/detail/at_key_impl.hpp                       |    46 ++++++--------                          
   sandbox/SOC/2009/fusion/boost/fusion/container/set/detail/begin_impl.hpp                        |    46 ++++++--------                          
   sandbox/SOC/2009/fusion/boost/fusion/container/set/detail/convert_impl.hpp                      |    59 ++++++++---------                       
   sandbox/SOC/2009/fusion/boost/fusion/container/set/detail/end_impl.hpp                          |    45 +++++--------                           
   sandbox/SOC/2009/fusion/boost/fusion/container/set/detail/value_at_key_impl.hpp                 |    31 ++++-----                               
   sandbox/SOC/2009/fusion/boost/fusion/container/set/set.hpp                                      |    16 ++--                                    
   sandbox/SOC/2009/fusion/boost/fusion/container/set/set_fwd.hpp                                  |     2                                         
   sandbox/SOC/2009/fusion/boost/fusion/container/vector/detail/advance_impl.hpp                   |    52 ++++++---------                         
   sandbox/SOC/2009/fusion/boost/fusion/container/vector/detail/at_impl.hpp                        |    50 +++++++--------                         
   sandbox/SOC/2009/fusion/boost/fusion/container/vector/detail/begin_impl.hpp                     |    35 ++++-----                               
   sandbox/SOC/2009/fusion/boost/fusion/container/vector/detail/convert_impl.hpp                   |    61 ++++++++----------                      
   sandbox/SOC/2009/fusion/boost/fusion/container/vector/detail/deref_impl.hpp                     |    57 ++++++++---------                       
   sandbox/SOC/2009/fusion/boost/fusion/container/vector/detail/distance_impl.hpp                  |    35 ++++------                              
   sandbox/SOC/2009/fusion/boost/fusion/container/vector/detail/end_impl.hpp                       |    45 ++++++-------                           
   sandbox/SOC/2009/fusion/boost/fusion/container/vector/detail/equal_to_impl.hpp                  |    26 ++++++-                                 
   sandbox/SOC/2009/fusion/boost/fusion/container/vector/detail/next_impl.hpp                      |    50 ++++++--------                          
   sandbox/SOC/2009/fusion/boost/fusion/container/vector/detail/prior_impl.hpp                     |    57 +++++++----------                       
   sandbox/SOC/2009/fusion/boost/fusion/container/vector/detail/value_at_impl.hpp                  |    35 ++++------                              
   sandbox/SOC/2009/fusion/boost/fusion/container/vector/detail/value_of_impl.hpp                  |    49 ++++++--------                          
   sandbox/SOC/2009/fusion/boost/fusion/container/vector/detail/variadic_templates/vector_impl.hpp |     1                                         
   sandbox/SOC/2009/fusion/boost/fusion/container/vector/vector.hpp                                |    19 +++--                                   
   sandbox/SOC/2009/fusion/boost/fusion/container/vector/vector10.hpp                              |     1                                         
   sandbox/SOC/2009/fusion/boost/fusion/container/vector/vector_fwd.hpp                            |     2                                         
   sandbox/SOC/2009/fusion/boost/fusion/functional/adapter/detail/access.hpp                       |     4                                         
   sandbox/SOC/2009/fusion/boost/fusion/functional/adapter/fused.hpp                               |     4                                         
   sandbox/SOC/2009/fusion/boost/fusion/functional/adapter/fused_function_object.hpp               |     4                                         
   sandbox/SOC/2009/fusion/boost/fusion/functional/adapter/fused_procedure.hpp                     |     4                                         
   sandbox/SOC/2009/fusion/boost/fusion/functional/adapter/unfused.hpp                             |    12 +-                                      
   sandbox/SOC/2009/fusion/boost/fusion/functional/generation/detail/gen_make_adapter.hpp          |     2                                         
   sandbox/SOC/2009/fusion/boost/fusion/functional/invocation/invoke.hpp                           |     4                                         
   sandbox/SOC/2009/fusion/boost/fusion/functional/invocation/invoke_function_object.hpp           |     4                                         
   sandbox/SOC/2009/fusion/boost/fusion/functional/invocation/invoke_procedure.hpp                 |     4                                         
   sandbox/SOC/2009/fusion/boost/fusion/iterator/distance.hpp                                      |    18 ++--                                    
   sandbox/SOC/2009/fusion/boost/fusion/iterator/equal_to.hpp                                      |    24 +++---                                  
   sandbox/SOC/2009/fusion/boost/fusion/support/deduce.hpp                                         |   111 +++++++--------------------------       
   sandbox/SOC/2009/fusion/boost/fusion/support/deduce_sequence.hpp                                |    15 ++--                                    
   sandbox/SOC/2009/fusion/boost/fusion/support/detail/as_fusion_element.hpp                       |    32 ++++----                                
   sandbox/SOC/2009/fusion/boost/fusion/support/detail/iterator_adapter/advance_impl.hpp           |    60 ++++++++----------                      
   sandbox/SOC/2009/fusion/boost/fusion/support/detail/iterator_adapter/deref_impl.hpp             |    50 ++++++--------                          
   sandbox/SOC/2009/fusion/boost/fusion/support/detail/iterator_adapter/distance_impl.hpp          |    45 ++++++-------                           
   sandbox/SOC/2009/fusion/boost/fusion/support/detail/iterator_adapter/equal_to_impl.hpp          |    39 +++++------                             
   sandbox/SOC/2009/fusion/boost/fusion/support/detail/iterator_adapter/next_impl.hpp              |    60 ++++++++----------                      
   sandbox/SOC/2009/fusion/boost/fusion/support/detail/iterator_adapter/prior_impl.hpp             |    60 ++++++++----------                      
   sandbox/SOC/2009/fusion/boost/fusion/support/detail/iterator_adapter/value_of_impl.hpp          |    39 ++++-------                             
   sandbox/SOC/2009/fusion/boost/fusion/support/is_iterator.hpp                                    |     2                                         
   sandbox/SOC/2009/fusion/boost/fusion/support/is_sequence.hpp                                    |    12 +-                                      
   sandbox/SOC/2009/fusion/boost/fusion/support/is_view.hpp                                        |    14 ----                                    
   sandbox/SOC/2009/fusion/boost/fusion/support/iterator_adapter.hpp                               |     1                                         
   sandbox/SOC/2009/fusion/boost/fusion/support/ref.hpp                                            |    57 ++++-------------                       
   sandbox/SOC/2009/fusion/boost/fusion/support/tag_of.hpp                                         |    14 ++++                                    
   sandbox/SOC/2009/fusion/boost/fusion/tuple/tuple_tie.hpp                                        |     3                                         
   sandbox/SOC/2009/fusion/boost/fusion/view/filter_view.hpp                                       |     1                                         
   sandbox/SOC/2009/fusion/boost/fusion/view/filter_view/detail/begin_impl.hpp                     |    52 ++++++---------                         
   sandbox/SOC/2009/fusion/boost/fusion/view/filter_view/detail/deref_impl.hpp                     |    45 ++++++-------                           
   sandbox/SOC/2009/fusion/boost/fusion/view/filter_view/detail/end_impl.hpp                       |    54 +++++++---------                        
   sandbox/SOC/2009/fusion/boost/fusion/view/filter_view/detail/equal_to_impl.hpp                  |    33 ++++-----                               
   sandbox/SOC/2009/fusion/boost/fusion/view/filter_view/detail/next_impl.hpp                      |    68 +++++++++-----------                    
   sandbox/SOC/2009/fusion/boost/fusion/view/filter_view/detail/size_impl.hpp                      |    33 ++++-----                               
   sandbox/SOC/2009/fusion/boost/fusion/view/filter_view/detail/value_of_impl.hpp                  |    32 ++++-----                               
   sandbox/SOC/2009/fusion/boost/fusion/view/filter_view/filter_view.hpp                           |    11 ++                                      
   sandbox/SOC/2009/fusion/boost/fusion/view/iterator_range/detail/at_impl.hpp                     |    43 +++++-------                            
   sandbox/SOC/2009/fusion/boost/fusion/view/iterator_range/detail/begin_impl.hpp                  |    39 +++++------                             
   sandbox/SOC/2009/fusion/boost/fusion/view/iterator_range/detail/end_impl.hpp                    |    39 +++++------                             
   sandbox/SOC/2009/fusion/boost/fusion/view/iterator_range/detail/value_at_impl.hpp               |    37 ++++------                              
   sandbox/SOC/2009/fusion/boost/fusion/view/iterator_range/iterator_range.hpp                     |     1                                         
   sandbox/SOC/2009/fusion/boost/fusion/view/joint_view.hpp                                        |     1                                         
   sandbox/SOC/2009/fusion/boost/fusion/view/joint_view/detail/begin_impl.hpp                      |   106 +++++++++++++++-----------------        
   sandbox/SOC/2009/fusion/boost/fusion/view/joint_view/detail/deref_impl.hpp                      |    55 +++++++---------                        
   sandbox/SOC/2009/fusion/boost/fusion/view/joint_view/detail/end_impl.hpp                        |    51 +++++++--------                         
   sandbox/SOC/2009/fusion/boost/fusion/view/joint_view/detail/equal_to_impl.hpp                   |     2                                         
   sandbox/SOC/2009/fusion/boost/fusion/view/joint_view/detail/next_impl.hpp                       |   130 ++++++++++++++++++--------------------- 
   sandbox/SOC/2009/fusion/boost/fusion/view/joint_view/detail/value_of_impl.hpp                   |    39 +++++------                             
   sandbox/SOC/2009/fusion/boost/fusion/view/joint_view/joint_view.hpp                             |     4                                         
   sandbox/SOC/2009/fusion/boost/fusion/view/reverse_view.hpp                                      |     1                                         
   sandbox/SOC/2009/fusion/boost/fusion/view/reverse_view/detail/advance_impl.hpp                  |    60 ++++++++----------                      
   sandbox/SOC/2009/fusion/boost/fusion/view/reverse_view/detail/begin_impl.hpp                    |    54 +++++++---------                        
   sandbox/SOC/2009/fusion/boost/fusion/view/reverse_view/detail/deref_impl.hpp                    |    49 ++++++--------                          
   sandbox/SOC/2009/fusion/boost/fusion/view/reverse_view/detail/distance_impl.hpp                 |    48 ++++++--------                          
   sandbox/SOC/2009/fusion/boost/fusion/view/reverse_view/detail/end_impl.hpp                      |    53 +++++++---------                        
   sandbox/SOC/2009/fusion/boost/fusion/view/reverse_view/detail/equal_to_impl.hpp                 |    33 ++++-----                               
   sandbox/SOC/2009/fusion/boost/fusion/view/reverse_view/detail/next_impl.hpp                     |    50 ++++++--------                          
   sandbox/SOC/2009/fusion/boost/fusion/view/reverse_view/detail/prior_impl.hpp                    |    50 ++++++--------                          
   sandbox/SOC/2009/fusion/boost/fusion/view/reverse_view/detail/value_of_impl.hpp                 |    39 +++++------                             
   sandbox/SOC/2009/fusion/boost/fusion/view/reverse_view/reverse_view.hpp                         |    11 ++                                      
   sandbox/SOC/2009/fusion/boost/fusion/view/single_view.hpp                                       |     1                                         
   sandbox/SOC/2009/fusion/boost/fusion/view/single_view/detail/begin_impl.hpp                     |    38 ++++-------                             
   sandbox/SOC/2009/fusion/boost/fusion/view/single_view/detail/deref_impl.hpp                     |    39 +++++------                             
   sandbox/SOC/2009/fusion/boost/fusion/view/single_view/detail/end_impl.hpp                       |    38 ++++-------                             
   sandbox/SOC/2009/fusion/boost/fusion/view/single_view/detail/equal_to_impl.hpp                  |    49 ++++++--------                          
   sandbox/SOC/2009/fusion/boost/fusion/view/single_view/detail/next_impl.hpp                      |    53 ++++++---------                         
   sandbox/SOC/2009/fusion/boost/fusion/view/single_view/detail/value_of_impl.hpp                  |    37 ++++------                              
   sandbox/SOC/2009/fusion/boost/fusion/view/single_view/single_view.hpp                           |     7 +                                       
   sandbox/SOC/2009/fusion/boost/fusion/view/transform_view.hpp                                    |     1                                         
   sandbox/SOC/2009/fusion/boost/fusion/view/transform_view/detail/advance_impl.hpp                |   130 ++++++++++++++++++--------------------- 
   sandbox/SOC/2009/fusion/boost/fusion/view/transform_view/detail/at_impl.hpp                     |   113 ++++++++++++++++------------------      
   sandbox/SOC/2009/fusion/boost/fusion/view/transform_view/detail/begin_impl.hpp                  |   120 ++++++++++++++++--------------------    
   sandbox/SOC/2009/fusion/boost/fusion/view/transform_view/detail/deref_impl.hpp                  |   122 ++++++++++++++++++-------------------   
   sandbox/SOC/2009/fusion/boost/fusion/view/transform_view/detail/distance_impl.hpp               |    60 ++++++++----------                      
   sandbox/SOC/2009/fusion/boost/fusion/view/transform_view/detail/end_impl.hpp                    |   116 ++++++++++++++++-------------------     
   sandbox/SOC/2009/fusion/boost/fusion/view/transform_view/detail/equal_to_impl.hpp               |    58 ++++++++---------                       
   sandbox/SOC/2009/fusion/boost/fusion/view/transform_view/detail/next_impl.hpp                   |   116 ++++++++++++++++-------------------     
   sandbox/SOC/2009/fusion/boost/fusion/view/transform_view/detail/prior_impl.hpp                  |   120 ++++++++++++++++--------------------    
   sandbox/SOC/2009/fusion/boost/fusion/view/transform_view/detail/value_at_impl.hpp               |    88 ++++++++++++--------------              
   sandbox/SOC/2009/fusion/boost/fusion/view/transform_view/detail/value_of_impl.hpp               |    90 ++++++++++++--------------              
   sandbox/SOC/2009/fusion/boost/fusion/view/transform_view/transform_view.hpp                     |    14 +++                                     
   sandbox/SOC/2009/fusion/boost/fusion/view/zip_view.hpp                                          |     1                                         
   sandbox/SOC/2009/fusion/boost/fusion/view/zip_view/detail/advance_impl.hpp                      |     7 -                                       
   sandbox/SOC/2009/fusion/boost/fusion/view/zip_view/detail/at_impl.hpp                           |     8 -                                       
   sandbox/SOC/2009/fusion/boost/fusion/view/zip_view/detail/begin_impl.hpp                        |    11 +--                                     
   sandbox/SOC/2009/fusion/boost/fusion/view/zip_view/detail/deref_impl.hpp                        |     6 -                                       
   sandbox/SOC/2009/fusion/boost/fusion/view/zip_view/detail/distance_impl.hpp                     |     6 -                                       
   sandbox/SOC/2009/fusion/boost/fusion/view/zip_view/detail/end_impl.hpp                          |     6 -                                       
   sandbox/SOC/2009/fusion/boost/fusion/view/zip_view/detail/equal_to_impl.hpp                     |     6 -                                       
   sandbox/SOC/2009/fusion/boost/fusion/view/zip_view/detail/next_impl.hpp                         |     8 -                                       
   sandbox/SOC/2009/fusion/boost/fusion/view/zip_view/detail/prior_impl.hpp                        |     6 -                                       
   sandbox/SOC/2009/fusion/boost/fusion/view/zip_view/detail/size_impl.hpp                         |    29 +++-----                                
   sandbox/SOC/2009/fusion/boost/fusion/view/zip_view/detail/value_at_impl.hpp                     |     7 -                                       
   sandbox/SOC/2009/fusion/boost/fusion/view/zip_view/detail/value_of_impl.hpp                     |     2                                         
   sandbox/SOC/2009/fusion/boost/fusion/view/zip_view/zip_view.hpp                                 |    14 +++                                     
   sandbox/SOC/2009/fusion/libs/fusion/doc/functional.qbk                                          |    36 +++++-----                              
   sandbox/SOC/2009/fusion/libs/fusion/doc/support.qbk                                             |    16 ++--                                    
   sandbox/SOC/2009/fusion/libs/fusion/example/cookbook/do_the_bind.cpp                            |    22 +++---                                  
   sandbox/SOC/2009/fusion/libs/fusion/example/performance/functional.cpp                          |    18 ++--                                    
   sandbox/SOC/2009/fusion/libs/fusion/test/Jamfile                                                |     2                                         
   sandbox/SOC/2009/fusion/libs/fusion/test/functional/fused.cpp                                   |     8 +-                                      
   sandbox/SOC/2009/fusion/libs/fusion/test/functional/fused_function_object.cpp                   |     8 +-                                      
   sandbox/SOC/2009/fusion/libs/fusion/test/functional/fused_procedure.cpp                         |     8 +-                                      
   sandbox/SOC/2009/fusion/libs/fusion/test/functional/invoke.cpp                                  |    32 ++++----                                
   sandbox/SOC/2009/fusion/libs/fusion/test/functional/invoke_function_object.cpp                  |    18 ++--                                    
   sandbox/SOC/2009/fusion/libs/fusion/test/functional/invoke_procedure.cpp                        |    26 ++++----                                
   sandbox/SOC/2009/fusion/libs/fusion/test/functional/make_fused.cpp                              |     6                                         
   sandbox/SOC/2009/fusion/libs/fusion/test/functional/make_fused_function_object.cpp              |     6                                         
   sandbox/SOC/2009/fusion/libs/fusion/test/functional/make_fused_procedure.cpp                    |     6                                         
   sandbox/SOC/2009/fusion/libs/fusion/test/functional/make_unfused.cpp                            |     6                                         
   sandbox/SOC/2009/fusion/libs/fusion/test/functional/unfused.cpp                                 |     8 +-                                      
   sandbox/SOC/2009/fusion/libs/fusion/test/functional/unfused_typed.cpp                           |    18 ++--                                    
   sandbox/SOC/2009/fusion/libs/fusion/test/sequence/deduce_sequence.cpp                           |    50 +++++++++-----                          
   sandbox/SOC/2009/fusion/libs/fusion/test/sequence/tr1_tuple_auto_conv.cpp                       |     2                                         
   sandbox/SOC/2009/fusion/libs/fusion/test/sequence/vector_iterator.cpp                           |     1                                         
   227 files changed, 3273 insertions(+), 4103 deletions(-)
Modified: sandbox/SOC/2009/fusion/boost/fusion/adapted.hpp
==============================================================================
--- sandbox/SOC/2009/fusion/boost/fusion/adapted.hpp	(original)
+++ sandbox/SOC/2009/fusion/boost/fusion/adapted.hpp	2009-07-10 18:07:00 EDT (Fri, 10 Jul 2009)
@@ -9,11 +9,10 @@
 #ifndef BOOST_FUSION_ADAPTED_HPP
 #define BOOST_FUSION_ADAPTED_HPP
 
-//TODO!!!
 #include <boost/fusion/adapted/boost_tuple.hpp>
-//#include <boost/fusion/adapted/std_pair.hpp>
+#include <boost/fusion/adapted/std_pair.hpp>
 #include <boost/fusion/adapted/array.hpp>
 #include <boost/fusion/adapted/mpl.hpp>
-//#include <boost/fusion/adapted/struct.hpp>
+#include <boost/fusion/adapted/struct.hpp>
 
 #endif
Modified: sandbox/SOC/2009/fusion/boost/fusion/adapted/array.hpp
==============================================================================
--- sandbox/SOC/2009/fusion/boost/fusion/adapted/array.hpp	(original)
+++ sandbox/SOC/2009/fusion/boost/fusion/adapted/array.hpp	2009-07-10 18:07:00 EDT (Fri, 10 Jul 2009)
@@ -9,10 +9,12 @@
 #ifndef BOOST_FUSION_ADAPTED_ARRAY_HPP
 #define BOOST_FUSION_ADAPTED_ARRAY_HPP
 
+//TODO adapt std::tuple, std::array
+
 #include <boost/fusion/support/ref.hpp>
 
-#include <boost/fusion/adapted/detail/array/array_iterator.hpp>
 #include <boost/fusion/adapted/detail/array/tag_of.hpp>
+#include <boost/fusion/adapted/detail/array/array_iterator.hpp>
 #include <boost/fusion/adapted/detail/array/is_view_impl.hpp>
 #include <boost/fusion/adapted/detail/array/is_sequence_impl.hpp>
 #include <boost/fusion/adapted/detail/array/category_of_impl.hpp>
Modified: sandbox/SOC/2009/fusion/boost/fusion/adapted/boost_tuple.hpp
==============================================================================
--- sandbox/SOC/2009/fusion/boost/fusion/adapted/boost_tuple.hpp	(original)
+++ sandbox/SOC/2009/fusion/boost/fusion/adapted/boost_tuple.hpp	2009-07-10 18:07:00 EDT (Fri, 10 Jul 2009)
@@ -12,15 +12,15 @@
 
 #include <boost/tuple/tuple.hpp>
 
-#include <boost/fusion/adapted/detail/boost_tuple/boost_tuple_iterator.hpp>
 #include <boost/fusion/adapted/detail/boost_tuple/tag_of.hpp>
 #include <boost/fusion/adapted/detail/boost_tuple/is_view_impl.hpp>
 #include <boost/fusion/adapted/detail/boost_tuple/is_sequence_impl.hpp>
 #include <boost/fusion/adapted/detail/boost_tuple/category_of_impl.hpp>
-#include <boost/fusion/adapted/detail/boost_tuple/begin_impl.hpp>
-#include <boost/fusion/adapted/detail/boost_tuple/end_impl.hpp>
 #include <boost/fusion/adapted/detail/boost_tuple/size_impl.hpp>
 #include <boost/fusion/adapted/detail/boost_tuple/at_impl.hpp>
 #include <boost/fusion/adapted/detail/boost_tuple/value_at_impl.hpp>
+#include <boost/fusion/adapted/detail/boost_tuple/boost_tuple_iterator.hpp>
+#include <boost/fusion/adapted/detail/boost_tuple/begin_impl.hpp>
+#include <boost/fusion/adapted/detail/boost_tuple/end_impl.hpp>
 
 #endif
Modified: sandbox/SOC/2009/fusion/boost/fusion/adapted/detail/array/array_iterator.hpp
==============================================================================
--- sandbox/SOC/2009/fusion/boost/fusion/adapted/detail/array/array_iterator.hpp	(original)
+++ sandbox/SOC/2009/fusion/boost/fusion/adapted/detail/array/array_iterator.hpp	2009-07-10 18:07:00 EDT (Fri, 10 Jul 2009)
@@ -47,7 +47,7 @@
             typedef typename detail::remove_reference<ItRef>::type it;
 
             typedef typename
-                detail::result_of_forward_as<
+                detail::forward_as<
                     typename it::array_type
                   , typename detail::remove_reference<
                         typename it::array_type
Modified: sandbox/SOC/2009/fusion/boost/fusion/adapted/detail/array/at_impl.hpp
==============================================================================
--- sandbox/SOC/2009/fusion/boost/fusion/adapted/detail/array/at_impl.hpp	(original)
+++ sandbox/SOC/2009/fusion/boost/fusion/adapted/detail/array/at_impl.hpp	2009-07-10 18:07:00 EDT (Fri, 10 Jul 2009)
@@ -9,38 +9,31 @@
 #ifndef BOOST_FUSION_ADAPTED_DETAIL_ARRAY_AT_IMPL_HPP
 #define BOOST_FUSION_ADAPTED_DETAIL_ARRAY_AT_IMPL_HPP
 
-namespace boost { namespace fusion {
-    
-    struct array_tag;
+namespace boost { namespace fusion { namespace extension
+{
+    template<typename Tag>
+    struct at_impl;
 
-    namespace extension
+    template<>
+    struct at_impl<array_tag>
     {
-        template<typename Tag>
-        struct at_impl;
-
-        template<>
-        struct at_impl<array_tag>
+        template<typename SeqRef, typename N>
+        struct apply
         {
-            template<typename SeqRef, typename N>
-            struct apply
-            {
-                typedef typename
-                    detail::result_of_forward_as<
-                        SeqRef
-                      , typename detail::remove_reference<
-                            SeqRef
-                        >::type::value_type
-                    >::type
-                type;
+            typedef typename
+                detail::forward_as<
+                    SeqRef
+                  , typename detail::remove_reference<SeqRef>::type::value_type
+                >::type
+            type;
 
-                static type
-                call(SeqRef seq)
-                {
-                    return seq[N::value];
-                }
-            };
+            static type
+            call(SeqRef seq)
+            {
+                return seq[N::value];
+            }
         };
-    }
-}}
+    };
+}}}
 
 #endif
Modified: sandbox/SOC/2009/fusion/boost/fusion/adapted/detail/array/begin_impl.hpp
==============================================================================
--- sandbox/SOC/2009/fusion/boost/fusion/adapted/detail/array/begin_impl.hpp	(original)
+++ sandbox/SOC/2009/fusion/boost/fusion/adapted/detail/array/begin_impl.hpp	2009-07-10 18:07:00 EDT (Fri, 10 Jul 2009)
@@ -9,31 +9,26 @@
 #ifndef BOOST_FUSION_ADAPTED_DETAIL_ARRAY_BEGIN_IMPL_HPP
 #define BOOST_FUSION_ADAPTED_DETAIL_ARRAY_BEGIN_IMPL_HPP
 
-namespace boost { namespace fusion {
+namespace boost { namespace fusion { namespace extension
+{
+    template<typename Tag>
+    struct begin_impl;
 
-    struct array_tag;
-
-    namespace extension
+    template <>
+    struct begin_impl<array_tag>
     {
-        template<typename Tag>
-        struct begin_impl;
-
-        template <>
-        struct begin_impl<array_tag>
+        template <typename SeqRef>
+        struct apply
         {
-            template <typename SeqRef>
-            struct apply 
+            typedef array_iterator<SeqRef, 0> type;
+
+            static type
+            call(SeqRef seq)
             {
-                typedef array_iterator<SeqRef, 0> type;
-    
-                static type
-                call(SeqRef seq)
-                {
-                    return type(seq,0);
-                }
-            };
+                return type(seq,0);
+            }
         };
-    }
-}}
+    };
+}}}
 
 #endif
Modified: sandbox/SOC/2009/fusion/boost/fusion/adapted/detail/array/category_of_impl.hpp
==============================================================================
--- sandbox/SOC/2009/fusion/boost/fusion/adapted/detail/array/category_of_impl.hpp	(original)
+++ sandbox/SOC/2009/fusion/boost/fusion/adapted/detail/array/category_of_impl.hpp	2009-07-10 18:07:00 EDT (Fri, 10 Jul 2009)
@@ -9,9 +9,8 @@
 #ifndef BOOST_FUSION_ADAPTED_DETAIL_ARRAY_CATEGORY_OF_IMPL_HPP
 #define BOOST_FUSION_ADAPTED_DETAIL_ARRAY_CATEGORY_OF_IMPL_HPP
 
-namespace boost { namespace fusion { 
-
-    struct array_tag;
+namespace boost { namespace fusion
+{
     struct random_access_traversal_tag;
 
     namespace extension
Modified: sandbox/SOC/2009/fusion/boost/fusion/adapted/detail/array/end_impl.hpp
==============================================================================
--- sandbox/SOC/2009/fusion/boost/fusion/adapted/detail/array/end_impl.hpp	(original)
+++ sandbox/SOC/2009/fusion/boost/fusion/adapted/detail/array/end_impl.hpp	2009-07-10 18:07:00 EDT (Fri, 10 Jul 2009)
@@ -9,38 +9,31 @@
 #ifndef BOOST_FUSION_ADAPTED_DETAIL_ARRAY_END_IMPL_HPP
 #define BOOST_FUSION_ADAPTED_DETAIL_ARRAY_END_IMPL_HPP
 
-namespace boost { namespace fusion {
+namespace boost { namespace fusion { namespace extension
+{
+    template <typename Tag>
+    struct end_impl;
 
-    struct array_tag;
-
-    namespace extension
+    template <>
+    struct end_impl<array_tag>
     {
-        template <typename Tag>
-        struct end_impl;
-
-        template <>
-        struct end_impl<array_tag>
+        template <typename SeqRef>
+        struct apply
         {
-            template <typename SeqRef>
-            struct apply 
+            typedef
+                array_iterator<
+                    SeqRef
+                  , detail::remove_reference<SeqRef>::type::static_size
+                >
+            type;
+
+            static type
+            call(SeqRef seq)
             {
-                typedef
-                    array_iterator<
-                        SeqRef
-                      , detail::remove_reference<
-                            SeqRef
-                        >::type::static_size
-                    >
-                type;
-    
-                static type
-                call(SeqRef seq)
-                {
-                    return type(seq,0);
-                }
-            };
+                return type(seq,0);
+            }
         };
-    }
-}}
+    };
+}}}
 
 #endif
Modified: sandbox/SOC/2009/fusion/boost/fusion/adapted/detail/array/is_sequence_impl.hpp
==============================================================================
--- sandbox/SOC/2009/fusion/boost/fusion/adapted/detail/array/is_sequence_impl.hpp	(original)
+++ sandbox/SOC/2009/fusion/boost/fusion/adapted/detail/array/is_sequence_impl.hpp	2009-07-10 18:07:00 EDT (Fri, 10 Jul 2009)
@@ -1,34 +1,28 @@
 /*=============================================================================
     Copyright (c) 2001-2006 Joel de Guzman
-    Copyright (c) 2005-2006 Dan Marsden
 
     Distributed under 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_FUSION_ADAPTED_DETAIL_ARRAY_IS_SEQUENCE_IMPL_HPP
-#define BOOST_FUSION_ADAPTED_DETAIL_ARRAY_IS_SEQUENCE_IMPL_HPP
+#ifndef BOOST_FUSION_ADAPTED_DETAIL_BOOST_ARRAY_IS_SEQUENCE_IMPL_HPP
+#define BOOST_FUSION_ADAPTED_DETAIL_BOOST_ARRAY_IS_SEQUENCE_IMPL_HPP
 
 #include <boost/mpl/bool.hpp>
 
-namespace boost { namespace fusion {
+namespace boost { namespace fusion { namespace extension
+{
+    template<typename Tag>
+    struct is_sequence_impl;
 
-    struct array_tag;
-
-    namespace extension
+    template<>
+    struct is_sequence_impl<array_tag>
     {
-        template<typename Tag>
-        struct is_sequence_impl;
-
-        template<>
-        struct is_sequence_impl<array_tag>
-        {
-            template<typename SeqRef>
-            struct apply
-              : mpl::true_
-            {};
-        };
-    }
-}}
+        template<typename SeqRef>
+        struct apply
+          : mpl::true_
+        {};
+    };
+}}}
 
 #endif
Modified: sandbox/SOC/2009/fusion/boost/fusion/adapted/detail/array/is_view_impl.hpp
==============================================================================
--- sandbox/SOC/2009/fusion/boost/fusion/adapted/detail/array/is_view_impl.hpp	(original)
+++ sandbox/SOC/2009/fusion/boost/fusion/adapted/detail/array/is_view_impl.hpp	2009-07-10 18:07:00 EDT (Fri, 10 Jul 2009)
@@ -11,24 +11,20 @@
 
 #include <boost/mpl/bool.hpp>
 
-namespace boost { namespace fusion 
+//TODO doc!!!
+namespace boost { namespace fusion { namespace extension
 {
-    struct array_tag;
+    template<typename Tag>
+    struct is_view_impl;
 
-    namespace extension
+    template<>
+    struct is_view_impl<array_tag>
     {
-        template<typename Tag>
-        struct is_view_impl;
-
-        template<>
-        struct is_view_impl<array_tag>
-        {
-            template<typename SeqRef>
-            struct apply
-              : mpl::false_
-            {};
-        };
-    }
-}}
+        template<typename SeqRef>
+        struct apply
+          : mpl::false_
+        {};
+    };
+}}}
 
 #endif
Modified: sandbox/SOC/2009/fusion/boost/fusion/adapted/detail/array/size_impl.hpp
==============================================================================
--- sandbox/SOC/2009/fusion/boost/fusion/adapted/detail/array/size_impl.hpp	(original)
+++ sandbox/SOC/2009/fusion/boost/fusion/adapted/detail/array/size_impl.hpp	2009-07-10 18:07:00 EDT (Fri, 10 Jul 2009)
@@ -9,24 +9,19 @@
 #ifndef BOOST_FUSION_ADAPTED_DETAIL_ARRAY_SIZE_IMPL_HPP
 #define BOOST_FUSION_ADAPTED_DETAIL_ARRAY_SIZE_IMPL_HPP
 
-namespace boost { namespace fusion {
+namespace boost { namespace fusion { namespace extension
+{
+    template<typename Tag>
+    struct size_impl;
 
-    struct array_tag;
-
-    namespace extension
+    template<>
+    struct size_impl<array_tag>
     {
-        template<typename Tag>
-        struct size_impl;
-
-        template<>
-        struct size_impl<array_tag>
-        {
-            template<typename SeqRef>
-            struct apply
-              : mpl::int_<detail::remove_reference<SeqRef>::type::static_size>
-            {};
-        };
-    }
-}}
+        template<typename SeqRef>
+        struct apply
+          : mpl::int_<detail::remove_reference<SeqRef>::type::static_size>
+        {};
+    };
+}}}
 
 #endif
Modified: sandbox/SOC/2009/fusion/boost/fusion/adapted/detail/array/value_at_impl.hpp
==============================================================================
--- sandbox/SOC/2009/fusion/boost/fusion/adapted/detail/array/value_at_impl.hpp	(original)
+++ sandbox/SOC/2009/fusion/boost/fusion/adapted/detail/array/value_at_impl.hpp	2009-07-10 18:07:00 EDT (Fri, 10 Jul 2009)
@@ -9,25 +9,20 @@
 #ifndef BOOST_FUSION_ADAPTED_DETAIL_ARRAY_VALUE_AT_IMPL_HPP
 #define BOOST_FUSION_ADAPTED_DETAIL_ARRAY_VALUE_AT_IMPL_HPP
 
-namespace boost { namespace fusion {
-    
-    struct array_tag;
+namespace boost { namespace fusion { namespace extension
+{
+    template<typename Tag>
+    struct value_at_impl;
 
-    namespace extension
+    template <>
+    struct value_at_impl<array_tag>
     {
-        template<typename Tag>
-        struct value_at_impl;
-
-        template <>
-        struct value_at_impl<array_tag>
+        template <typename SeqRef, typename N>
+        struct apply
         {
-            template <typename SeqRef, typename N>
-            struct apply 
-            {
-                typedef typename SeqRef::value_type type;
-            };
+            typedef typename SeqRef::value_type type;
         };
-    }
-}}
+    };
+}}}
 
 #endif
Modified: sandbox/SOC/2009/fusion/boost/fusion/adapted/detail/boost_tuple/at_impl.hpp
==============================================================================
--- sandbox/SOC/2009/fusion/boost/fusion/adapted/detail/boost_tuple/at_impl.hpp	(original)
+++ sandbox/SOC/2009/fusion/boost/fusion/adapted/detail/boost_tuple/at_impl.hpp	2009-07-10 18:07:00 EDT (Fri, 10 Jul 2009)
@@ -8,40 +8,35 @@
 #ifndef BOOST_FUSION_ADAPTED_DETAIL_BOOST_TUPLE_AT_IMPL_HPP
 #define BOOST_FUSION_ADAPTED_DETAIL_BOOST_TUPLE_AT_IMPL_HPP
 
-namespace boost { namespace fusion 
+namespace boost { namespace fusion { namespace extension
 {
-    struct boost_tuple_tag;
+    template<typename Tag>
+    struct at_impl;
 
-    namespace extension
+    template <>
+    struct at_impl<boost_tuple_tag>
     {
-        template<typename Tag>
-        struct at_impl;
-
-        template <>
-        struct at_impl<boost_tuple_tag>
+        template <typename SeqRef, typename N>
+        struct apply
         {
-            template <typename SeqRef, typename N>
-            struct apply 
-            {
-                typedef typename
-                    detail::result_of_forward_as<
-                        SeqRef
-                      , typename tuples::element<
-                            N::value
-                          , typename detail::identity<SeqRef>::type
-                        >::type
+            typedef typename
+                detail::forward_as<
+                    SeqRef
+                  , typename tuples::element<
+                        N::value
+                      , typename detail::identity<SeqRef>::type
                     >::type
-                type;
-    
-                static type
-                call(SeqRef seq)
-                {
-                    return tuples::get<N::value>(
-                            BOOST_FUSION_FORWARD(SeqRef,seq));
-                }
-            };
+                >::type
+            type;
+
+            static type
+            call(SeqRef seq)
+            {
+                return tuples::get<N::value>(
+                        BOOST_FUSION_FORWARD(SeqRef,seq));
+            }
         };
-    }
-}}
+    };
+}}}
 
 #endif
Modified: sandbox/SOC/2009/fusion/boost/fusion/adapted/detail/boost_tuple/begin_impl.hpp
==============================================================================
--- sandbox/SOC/2009/fusion/boost/fusion/adapted/detail/boost_tuple/begin_impl.hpp	(original)
+++ sandbox/SOC/2009/fusion/boost/fusion/adapted/detail/boost_tuple/begin_impl.hpp	2009-07-10 18:07:00 EDT (Fri, 10 Jul 2009)
@@ -8,31 +8,26 @@
 #ifndef BOOST_FUSION_ADAPTED_DETAIL_BOOST_TUPLE_BEGIN_IMPL_HPP
 #define BOOST_FUSION_ADAPTED_DETAIL_BOOST_TUPLE_BEGIN_IMPL_HPP
 
-namespace boost { namespace fusion 
+namespace boost { namespace fusion { namespace extension
 {
-    struct boost_tuple_tag;
+    template<typename Tag>
+    struct begin_impl;
 
-    namespace extension
+    template <>
+    struct begin_impl<boost_tuple_tag>
     {
-        template<typename Tag>
-        struct begin_impl;
-
-        template <>
-        struct begin_impl<boost_tuple_tag>
+        template <typename SeqRef>
+        struct apply
         {
-            template <typename SeqRef>
-            struct apply 
+            typedef boost_tuple_iterator<SeqRef> type;
+
+            static type
+            call(SeqRef seq)
             {
-                typedef boost_tuple_iterator<SeqRef> type;
-    
-                static type
-                call(SeqRef seq)
-                {
-                    return type(seq,0);
-                }
-            };
+                return type(seq,0);
+            }
         };
-    }
-}}
+    };
+}}}
 
 #endif
Modified: sandbox/SOC/2009/fusion/boost/fusion/adapted/detail/boost_tuple/boost_tuple_iterator.hpp
==============================================================================
--- sandbox/SOC/2009/fusion/boost/fusion/adapted/detail/boost_tuple/boost_tuple_iterator.hpp	(original)
+++ sandbox/SOC/2009/fusion/boost/fusion/adapted/detail/boost_tuple/boost_tuple_iterator.hpp	2009-07-10 18:07:00 EDT (Fri, 10 Jul 2009)
@@ -38,7 +38,7 @@
             it;
 
             typedef typename
-                detail::result_of_forward_as<
+                detail::forward_as<
                     typename it::cons_type
                   , typename detail::remove_reference<
                         typename it::cons_type
@@ -62,7 +62,7 @@
 
             typedef
                 boost_tuple_iterator<
-                    typename detail::result_of_forward_as<
+                    typename detail::forward_as<
                         typename it::cons_type,
                         typename detail::remove_reference<
                             typename it::cons_type
Modified: sandbox/SOC/2009/fusion/boost/fusion/adapted/detail/boost_tuple/category_of_impl.hpp
==============================================================================
--- sandbox/SOC/2009/fusion/boost/fusion/adapted/detail/boost_tuple/category_of_impl.hpp	(original)
+++ sandbox/SOC/2009/fusion/boost/fusion/adapted/detail/boost_tuple/category_of_impl.hpp	2009-07-10 18:07:00 EDT (Fri, 10 Jul 2009)
@@ -10,7 +10,6 @@
 
 namespace boost { namespace fusion 
 { 
-    struct boost_tuple_tag;
     struct forward_traversal_tag;
 
     namespace extension
Modified: sandbox/SOC/2009/fusion/boost/fusion/adapted/detail/boost_tuple/end_impl.hpp
==============================================================================
--- sandbox/SOC/2009/fusion/boost/fusion/adapted/detail/boost_tuple/end_impl.hpp	(original)
+++ sandbox/SOC/2009/fusion/boost/fusion/adapted/detail/boost_tuple/end_impl.hpp	2009-07-10 18:07:00 EDT (Fri, 10 Jul 2009)
@@ -11,53 +11,48 @@
 #include <boost/mpl/bool.hpp>
 #include <boost/type_traits/is_convertible.hpp>
 
-namespace boost { namespace fusion
+namespace boost { namespace fusion { namespace extension
 {
-    struct boost_tuple_tag;
+    template <typename Tag>
+    struct end_impl;
 
-    namespace extension
+    template <>
+    struct end_impl<boost_tuple_tag>
     {
-        template <typename Tag>
-        struct end_impl;
-
-        template <>
-        struct end_impl<boost_tuple_tag>
+        template <typename>
+        struct apply
         {
-            template <typename>
-            struct apply 
+            typedef
+                boost_tuple_iterator<tuples::null_type const volatile&>
+            type;
+
+            //TODO volatile!
+            template<typename Seq>
+            static type
+            call(Seq const& seq, mpl::true_)
+            {
+                return type(seq,0);
+            }
+
+            template<typename Seq>
+            static type
+            call(Seq const& seq, mpl::false_)
+            {
+                return call(seq.get_tail());
+            }
+
+            template<typename Seq>
+            static type
+            call(Seq const& seq)
             {
-                typedef
-                    boost_tuple_iterator<tuples::null_type const volatile&>
-                type;
-
-                //TODO volatile!
-                template<typename Seq>
-                static type
-                call(Seq const& seq, mpl::true_)
-                {
-                    return type(seq,0);
-                }
-
-                template<typename Seq>
-                static type
-                call(Seq const& seq, mpl::false_)
-                {
-                    return call(seq.get_tail());
-                }
-
-                template<typename Seq>
-                static type
-                call(Seq const& seq)
-                {
-                    return call(seq,
-                            typename is_convertible<
-                                Seq*
-                              , tuples::null_type const volatile*
-                            >::type());
-                }
-            };
+                return call(seq,
+                        typename is_convertible<
+                            Seq*
+                          , tuples::null_type const volatile*
+                        >::type());
+            }
         };
-    }
-}}
+    };
+}}}
 
 #endif
Modified: sandbox/SOC/2009/fusion/boost/fusion/adapted/detail/boost_tuple/is_sequence_impl.hpp
==============================================================================
--- sandbox/SOC/2009/fusion/boost/fusion/adapted/detail/boost_tuple/is_sequence_impl.hpp	(original)
+++ sandbox/SOC/2009/fusion/boost/fusion/adapted/detail/boost_tuple/is_sequence_impl.hpp	2009-07-10 18:07:00 EDT (Fri, 10 Jul 2009)
@@ -10,24 +10,19 @@
 
 #include <boost/mpl/bool.hpp>
 
-namespace boost { namespace fusion 
+namespace boost { namespace fusion { namespace extension
 {
-    struct boost_tuple_tag;
+    template<typename Tag>
+    struct is_sequence_impl;
 
-    namespace extension
+    template<>
+    struct is_sequence_impl<boost_tuple_tag>
     {
-        template<typename Tag>
-        struct is_sequence_impl;
-
-        template<>
-        struct is_sequence_impl<boost_tuple_tag>
-        {
-            template<typename SeqRef>
-            struct apply
-              : mpl::true_
-            {};
-        };
-    }
-}}
+        template<typename SeqRef>
+        struct apply
+          : mpl::true_
+        {};
+    };
+}}}
 
 #endif
Modified: sandbox/SOC/2009/fusion/boost/fusion/adapted/detail/boost_tuple/is_view_impl.hpp
==============================================================================
--- sandbox/SOC/2009/fusion/boost/fusion/adapted/detail/boost_tuple/is_view_impl.hpp	(original)
+++ sandbox/SOC/2009/fusion/boost/fusion/adapted/detail/boost_tuple/is_view_impl.hpp	2009-07-10 18:07:00 EDT (Fri, 10 Jul 2009)
@@ -12,24 +12,19 @@
 
 //TODO: implement through is_sequence
 
-namespace boost { namespace fusion 
+namespace boost { namespace fusion { namespace extension
 {
-    struct boost_tuple_tag;
+    template<typename Tag>
+    struct is_view_impl;
 
-    namespace extension
+    template<>
+    struct is_view_impl<boost_tuple_tag>
     {
-        template<typename Tag>
-        struct is_view_impl;
-
-        template<>
-        struct is_view_impl<boost_tuple_tag>
-        {
-            template<typename SeqRef>
-            struct apply
-              : mpl::false_
-            {};
-        };
-    }
-}}
+        template<typename SeqRef>
+        struct apply
+          : mpl::false_
+        {};
+    };
+}}}
 
 #endif
Modified: sandbox/SOC/2009/fusion/boost/fusion/adapted/detail/boost_tuple/size_impl.hpp
==============================================================================
--- sandbox/SOC/2009/fusion/boost/fusion/adapted/detail/boost_tuple/size_impl.hpp	(original)
+++ sandbox/SOC/2009/fusion/boost/fusion/adapted/detail/boost_tuple/size_impl.hpp	2009-07-10 18:07:00 EDT (Fri, 10 Jul 2009)
@@ -10,28 +10,23 @@
 
 #include <boost/mpl/int.hpp>
 
-namespace boost { namespace fusion
+namespace boost { namespace fusion { namespace extension
 {
-    struct boost_tuple_tag;
+    template<typename Tag>
+    struct size_impl;
 
-    namespace extension
+    template <>
+    struct size_impl<boost_tuple_tag>
     {
-        template<typename Tag>
-        struct size_impl;
-
-        template <>
-        struct size_impl<boost_tuple_tag>
-        {
-            template <typename SeqRef>
-            struct apply
-              : mpl::int_<
-                    tuples::length<
-                        typename detail::identity<SeqRef>::type
-                    >::value
-                >
-            {};
-        };
-    }
-}}
+        template <typename SeqRef>
+        struct apply
+          : mpl::int_<
+                tuples::length<
+                    typename detail::identity<SeqRef>::type
+                >::value
+            >
+        {};
+    };
+}}}
 
 #endif
Modified: sandbox/SOC/2009/fusion/boost/fusion/adapted/detail/boost_tuple/value_at_impl.hpp
==============================================================================
--- sandbox/SOC/2009/fusion/boost/fusion/adapted/detail/boost_tuple/value_at_impl.hpp	(original)
+++ sandbox/SOC/2009/fusion/boost/fusion/adapted/detail/boost_tuple/value_at_impl.hpp	2009-07-10 18:07:00 EDT (Fri, 10 Jul 2009)
@@ -8,27 +8,22 @@
 #ifndef BOOST_FUSION_ADAPTED_DETAIL_BOOST_TUPLE_VALUE_AT_IMPL_HPP
 #define BOOST_FUSION_ADAPTED_DETAIL_BOOST_TUPLE_VALUE_AT_IMPL_HPP
 
-namespace boost { namespace fusion
+namespace boost { namespace fusion { namespace extension
 {
-    struct boost_tuple_tag;
+    template<typename Tag>
+    struct value_at_impl;
 
-    namespace extension
+    template <>
+    struct value_at_impl<boost_tuple_tag>
     {
-        template<typename Tag>
-        struct value_at_impl;
-
-        template <>
-        struct value_at_impl<boost_tuple_tag>
-        {
-            template <typename SeqRef, typename N>
-            struct apply
-              : tuples::element<
-                    N::value
-                  , typename detail::identity<SeqRef>::type
-                >
-            {};
-        };
-    }
-}}
+        template <typename SeqRef, typename N>
+        struct apply
+          : tuples::element<
+                N::value
+              , typename detail::identity<SeqRef>::type
+            >
+        {};
+    };
+}}}
 
 #endif
Modified: sandbox/SOC/2009/fusion/boost/fusion/adapted/detail/mpl/advance_impl.hpp
==============================================================================
--- sandbox/SOC/2009/fusion/boost/fusion/adapted/detail/mpl/advance_impl.hpp	(original)
+++ sandbox/SOC/2009/fusion/boost/fusion/adapted/detail/mpl/advance_impl.hpp	2009-07-10 18:07:00 EDT (Fri, 10 Jul 2009)
@@ -10,38 +10,33 @@
 
 #include <boost/mpl/advance.hpp>
 
-namespace boost { namespace fusion
+namespace boost { namespace fusion { namespace extension
 {
-    struct mpl_iterator_tag;
+    template <typename Tag>
+    struct advance_impl;
 
-    namespace extension
+    template <>
+    struct advance_impl<mpl_iterator_tag>
     {
-        template <typename Tag>
-        struct advance_impl;
-
-        template <>
-        struct advance_impl<mpl_iterator_tag>
+        template <typename ItRef, typename N>
+        struct apply
         {
-            template <typename ItRef, typename N>
-            struct apply
-            {
-                typedef
-                    mpl_iterator<
-                        typename mpl::advance<
-                            typename detail::identity<ItRef>::type
-                          , N
-                        >::type
-                    >
-               type;
+            typedef
+                mpl_iterator<
+                    typename mpl::advance<
+                        typename detail::identity<ItRef>::type
+                      , N
+                    >::type
+                >
+           type;
 
-                static type
-                call(ItRef)
-                {
-                    return type();
-                }
-            };
+            static type
+            call(ItRef)
+            {
+                return type();
+            }
         };
-    }
-}}
+    };
+}}}
 
 #endif
Modified: sandbox/SOC/2009/fusion/boost/fusion/adapted/detail/mpl/at_impl.hpp
==============================================================================
--- sandbox/SOC/2009/fusion/boost/fusion/adapted/detail/mpl/at_impl.hpp	(original)
+++ sandbox/SOC/2009/fusion/boost/fusion/adapted/detail/mpl/at_impl.hpp	2009-07-10 18:07:00 EDT (Fri, 10 Jul 2009)
@@ -11,33 +11,28 @@
 
 #include <boost/mpl/at.hpp>
 
-namespace boost { namespace fusion
+namespace boost { namespace fusion { namespace extension
 {
-    struct mpl_sequence_tag;
+    template<typename Tag>
+    struct at_impl;
 
-    namespace extension
+    template <>
+    struct at_impl<mpl_sequence_tag>
     {
-        template<typename Tag>
-        struct at_impl;
-
-        template <>
-        struct at_impl<mpl_sequence_tag>
+        template <typename SeqRef, typename N>
+        struct apply
         {
-            template <typename SeqRef, typename N>
-            struct apply
-            {
-                typedef typename
-                    mpl::at<typename detail::identity<SeqRef>::type, N>::type
-                type;
+            typedef typename
+                mpl::at<typename detail::identity<SeqRef>::type, N>::type
+            type;
 
-                static type
-                call(SeqRef)
-                {
-                    return type();
-                }
-            };
+            static type
+            call(SeqRef)
+            {
+                return type();
+            }
         };
-    }
-}}
+    };
+}}}
 
 #endif
Modified: sandbox/SOC/2009/fusion/boost/fusion/adapted/detail/mpl/begin_impl.hpp
==============================================================================
--- sandbox/SOC/2009/fusion/boost/fusion/adapted/detail/mpl/begin_impl.hpp	(original)
+++ sandbox/SOC/2009/fusion/boost/fusion/adapted/detail/mpl/begin_impl.hpp	2009-07-10 18:07:00 EDT (Fri, 10 Jul 2009)
@@ -11,37 +11,32 @@
 
 #include <boost/mpl/begin.hpp>
 
-namespace boost { namespace fusion {
+namespace boost { namespace fusion { namespace extension
+{
+    template <typename Tag>
+    struct begin_impl;
 
-    struct mpl_sequence_tag;
-
-    namespace extension
+    template <>
+    struct begin_impl<mpl_sequence_tag>
     {
-        template <typename Tag>
-        struct begin_impl;
-
-        template <>
-        struct begin_impl<mpl_sequence_tag>
+        template <typename SeqRef>
+        struct apply
         {
-            template <typename SeqRef>
-            struct apply
-            {
-                typedef
-                    mpl_iterator<
-                        typename mpl::begin<
-                            typename detail::identity<SeqRef>::type
-                        >::type
-                    >
-                type;
+            typedef
+                mpl_iterator<
+                    typename mpl::begin<
+                        typename detail::identity<SeqRef>::type
+                    >::type
+                >
+            type;
 
-                static type
-                call(SeqRef)
-                {
-                    return type();
-                }
-            };
+            static type
+            call(SeqRef)
+            {
+                return type();
+            }
         };
-    }
-}}
+    };
+}}}
 
 #endif
Modified: sandbox/SOC/2009/fusion/boost/fusion/adapted/detail/mpl/category_of_impl.hpp
==============================================================================
--- sandbox/SOC/2009/fusion/boost/fusion/adapted/detail/mpl/category_of_impl.hpp	(original)
+++ sandbox/SOC/2009/fusion/boost/fusion/adapted/detail/mpl/category_of_impl.hpp	2009-07-10 18:07:00 EDT (Fri, 10 Jul 2009)
@@ -15,32 +15,27 @@
 #include <boost/mpl/begin.hpp>
 #include <boost/mpl/is_sequence.hpp>
 
-namespace boost { namespace fusion {
+namespace boost { namespace fusion { namespace extension
+{
+    template<typename Tag>
+    struct category_of_impl;
 
-    struct mpl_sequence_tag;
-
-    namespace extension
+    template<>
+    struct category_of_impl<mpl_sequence_tag>
     {
-        template<typename Tag>
-        struct category_of_impl;
-
-        template<>
-        struct category_of_impl<mpl_sequence_tag>
+        template<typename SeqRef>
+        struct apply
         {
-            template<typename SeqRef>
-            struct apply
-            {
-                //TODO get_category?
-                typedef typename
-                    detail::mpl_iterator_category<
-                        typename mpl::begin<
-                            typename detail::identity<SeqRef>::type
-                        >::type::category
-                    >::type
-                type;
-            };
+            //TODO get_category?
+            typedef typename
+                detail::mpl_iterator_category<
+                    typename mpl::begin<
+                        typename detail::identity<SeqRef>::type
+                    >::type::category
+                >::type
+            type;
         };
-    }
-}}
+    };
+}}}
 
 #endif
Modified: sandbox/SOC/2009/fusion/boost/fusion/adapted/detail/mpl/deref_impl.hpp
==============================================================================
--- sandbox/SOC/2009/fusion/boost/fusion/adapted/detail/mpl/deref_impl.hpp	(original)
+++ sandbox/SOC/2009/fusion/boost/fusion/adapted/detail/mpl/deref_impl.hpp	2009-07-10 18:07:00 EDT (Fri, 10 Jul 2009)
@@ -10,33 +10,28 @@
 
 #include <boost/mpl/deref.hpp>
 
-namespace boost { namespace fusion
+namespace boost { namespace fusion { namespace extension
 {
-    struct mpl_iterator_tag;
+    template <typename Tag>
+    struct deref_impl;
 
-    namespace extension
+    template <>
+    struct deref_impl<mpl_iterator_tag>
     {
-        template <typename Tag>
-        struct deref_impl;
-
-        template <>
-        struct deref_impl<mpl_iterator_tag>
+        template <typename ItRef>
+        struct apply
         {
-            template <typename ItRef>
-            struct apply
-            {
-                typedef typename
-                    mpl::deref<typename detail::identity<ItRef>::type>::type
-                type;
+            typedef typename
+                mpl::deref<typename detail::identity<ItRef>::type>::type
+            type;
 
-                static type
-                call(ItRef)
-                {
-                    return type();
-                }
-            };
+            static type
+            call(ItRef)
+            {
+                return type();
+            }
         };
-    }
-}}
+    };
+}}}
 
 #endif
Modified: sandbox/SOC/2009/fusion/boost/fusion/adapted/detail/mpl/distance_impl.hpp
==============================================================================
--- sandbox/SOC/2009/fusion/boost/fusion/adapted/detail/mpl/distance_impl.hpp	(original)
+++ sandbox/SOC/2009/fusion/boost/fusion/adapted/detail/mpl/distance_impl.hpp	2009-07-10 18:07:00 EDT (Fri, 10 Jul 2009)
@@ -12,30 +12,25 @@
 
 #include <boost/mpl/distance.hpp>
 
-namespace boost { namespace fusion
+namespace boost { namespace fusion { namespace extension
 {
-    struct mpl_iterator_tag;
+    template <typename Tag>
+    struct distance_to_impl;
 
-    namespace extension
+    template <>
+    struct distance_to_impl<mpl_iterator_tag>
     {
-        template <typename Tag>
-        struct distance_to_impl;
-
-        template <>
-        struct distance_to_impl<mpl_iterator_tag>
+        template <typename It1Ref, typename It2Ref>
+        struct apply
+          : mpl::distance<
+                typename detail::identity<It1Ref>::type
+              , typename detail::get_mpl_it<
+                    typename detail::identity<It2Ref>::type
+                >::type
+            >
         {
-            template <typename It1Ref, typename It2Ref>
-            struct apply
-              : mpl::distance<
-                    typename detail::identity<It1Ref>::type
-                  , typename detail::get_mpl_it<
-                        typename detail::identity<It2Ref>::type
-                    >::type
-                >
-            {
-            };
         };
-    }
-}}
+    };
+}}}
 
 #endif
Modified: sandbox/SOC/2009/fusion/boost/fusion/adapted/detail/mpl/empty_impl.hpp
==============================================================================
--- sandbox/SOC/2009/fusion/boost/fusion/adapted/detail/mpl/empty_impl.hpp	(original)
+++ sandbox/SOC/2009/fusion/boost/fusion/adapted/detail/mpl/empty_impl.hpp	2009-07-10 18:07:00 EDT (Fri, 10 Jul 2009)
@@ -11,24 +11,19 @@
 
 #include <boost/mpl/empty.hpp>
 
-namespace boost { namespace fusion
+namespace boost { namespace fusion { namespace extension
 {
-    struct mpl_sequence_tag;
+    template <typename Tag>
+    struct empty_impl;
 
-    namespace extension
+    template <>
+    struct empty_impl<mpl_sequence_tag>
     {
-        template <typename Tag>
-        struct empty_impl;
-
-        template <>
-        struct empty_impl<mpl_sequence_tag>
-        {
-            template <typename SeqRef>
-            struct apply
-              : mpl::empty<typename detail::identity<SeqRef>::type>
-            {};
-        };
-    }
-}}
+        template <typename SeqRef>
+        struct apply
+          : mpl::empty<typename detail::identity<SeqRef>::type>
+        {};
+    };
+}}}
 
 #endif
Modified: sandbox/SOC/2009/fusion/boost/fusion/adapted/detail/mpl/end_impl.hpp
==============================================================================
--- sandbox/SOC/2009/fusion/boost/fusion/adapted/detail/mpl/end_impl.hpp	(original)
+++ sandbox/SOC/2009/fusion/boost/fusion/adapted/detail/mpl/end_impl.hpp	2009-07-10 18:07:00 EDT (Fri, 10 Jul 2009)
@@ -11,37 +11,32 @@
 
 #include <boost/mpl/end.hpp>
 
-namespace boost { namespace fusion
+namespace boost { namespace fusion{ namespace extension
 {
-    struct mpl_sequence_tag;
+    template <typename Tag>
+    struct end_impl;
 
-    namespace extension
+    template <>
+    struct end_impl<mpl_sequence_tag>
     {
-        template <typename Tag>
-        struct end_impl;
-
-        template <>
-        struct end_impl<mpl_sequence_tag>
+        template <typename SeqRef>
+        struct apply
         {
-            template <typename SeqRef>
-            struct apply
-            {
-                typedef
-                    mpl_iterator<
-                        typename mpl::end<
-                            typename detail::identity<SeqRef>::type
-                        >::type
-                    >
-                type;
+            typedef
+                mpl_iterator<
+                    typename mpl::end<
+                        typename detail::identity<SeqRef>::type
+                    >::type
+                >
+            type;
 
-                static type
-                call(SeqRef)
-                {
-                    return type();
-                }
-            };
+            static type
+            call(SeqRef)
+            {
+                return type();
+            }
         };
-    }
-}}
+    };
+}}}
 
 #endif
Modified: sandbox/SOC/2009/fusion/boost/fusion/adapted/detail/mpl/equal_to_impl.hpp
==============================================================================
--- sandbox/SOC/2009/fusion/boost/fusion/adapted/detail/mpl/equal_to_impl.hpp	(original)
+++ sandbox/SOC/2009/fusion/boost/fusion/adapted/detail/mpl/equal_to_impl.hpp	2009-07-10 18:07:00 EDT (Fri, 10 Jul 2009)
@@ -12,30 +12,25 @@
 
 #include <boost/type_traits/is_same.hpp>
 
-namespace boost { namespace fusion
+namespace boost { namespace fusion { namespace extension
 {
-    struct mpl_iterator_tag;
+    template <typename Tag>
+    struct equal_to_impl;
 
-    namespace extension
+    template <>
+    struct equal_to_impl<mpl_iterator_tag>
     {
-        template <typename Tag>
-        struct equal_to_impl;
-
-        template <>
-        struct equal_to_impl<mpl_iterator_tag>
+        template <typename It1Ref, typename It2Ref>
+        struct apply
+          : is_same<
+                typename detail::identity<It1Ref>::type
+              , typename detail::get_mpl_it<
+                    typename detail::identity<It2Ref>::type
+                >::type
+            >
         {
-            template <typename It1Ref, typename It2Ref>
-            struct apply
-              : is_same<
-                    typename detail::identity<It1Ref>::type
-                  , typename detail::get_mpl_it<
-                        typename detail::identity<It2Ref>::type
-                    >::type
-                >
-            {
-            };
         };
-    }
-}}
+    };
+}}}
 
 #endif
Modified: sandbox/SOC/2009/fusion/boost/fusion/adapted/detail/mpl/has_key_impl.hpp
==============================================================================
--- sandbox/SOC/2009/fusion/boost/fusion/adapted/detail/mpl/has_key_impl.hpp	(original)
+++ sandbox/SOC/2009/fusion/boost/fusion/adapted/detail/mpl/has_key_impl.hpp	2009-07-10 18:07:00 EDT (Fri, 10 Jul 2009)
@@ -11,24 +11,19 @@
 
 #include <boost/mpl/has_key.hpp>
 
-namespace boost { namespace fusion
+namespace boost { namespace fusion { namespace extension
 {
-    struct mpl_sequence_tag;
+    template <typename Tag>
+    struct has_key_impl;
 
-    namespace extension
+    template <>
+    struct has_key_impl<mpl_sequence_tag>
     {
-        template <typename Tag>
-        struct has_key_impl;
-
-        template <>
-        struct has_key_impl<mpl_sequence_tag>
-        {
-            template <typename SeqRef, typename Key>
-            struct apply
-              : mpl::has_key<typename detail::identity<SeqRef>::type, Key>
-            {};
-        };
-    }
-}}
+        template <typename SeqRef, typename Key>
+        struct apply
+          : mpl::has_key<typename detail::identity<SeqRef>::type, Key>
+        {};
+    };
+}}}
 
 #endif
Modified: sandbox/SOC/2009/fusion/boost/fusion/adapted/detail/mpl/is_sequence_impl.hpp
==============================================================================
--- sandbox/SOC/2009/fusion/boost/fusion/adapted/detail/mpl/is_sequence_impl.hpp	(original)
+++ sandbox/SOC/2009/fusion/boost/fusion/adapted/detail/mpl/is_sequence_impl.hpp	2009-07-10 18:07:00 EDT (Fri, 10 Jul 2009)
@@ -11,24 +11,19 @@
 
 #include <boost/mpl/bool.hpp>
 
-namespace boost { namespace fusion
+namespace boost { namespace fusion { namespace extension
 {
-    struct mpl_sequence_tag;
+    template<typename Tag>
+    struct is_sequence_impl;
 
-    namespace extension
+    template<>
+    struct is_sequence_impl<mpl_sequence_tag>
     {
-        template<typename Tag>
-        struct is_sequence_impl;
-
-        template<>
-        struct is_sequence_impl<mpl_sequence_tag>
-        {
-            template<typename SeqRef>
-            struct apply
-              : mpl::true_
-            {};
-        };
-    }
-}}
+        template<typename SeqRef>
+        struct apply
+          : mpl::true_
+        {};
+    };
+}}}
 
 #endif
Modified: sandbox/SOC/2009/fusion/boost/fusion/adapted/detail/mpl/is_view_impl.hpp
==============================================================================
--- sandbox/SOC/2009/fusion/boost/fusion/adapted/detail/mpl/is_view_impl.hpp	(original)
+++ sandbox/SOC/2009/fusion/boost/fusion/adapted/detail/mpl/is_view_impl.hpp	2009-07-10 18:07:00 EDT (Fri, 10 Jul 2009)
@@ -11,24 +11,19 @@
 
 #include <boost/mpl/bool.hpp>
 
-namespace boost { namespace fusion
+namespace boost { namespace fusion { namespace extension
 {
-    struct mpl_sequence_tag;
+    template<typename Tag>
+    struct is_view_impl;
 
-    namespace extension
+    template<>
+    struct is_view_impl<mpl_sequence_tag>
     {
-        template<typename Tag>
-        struct is_view_impl;
-
-        template<>
-        struct is_view_impl<mpl_sequence_tag>
-        {
-            template<typename SeqRef>
-            struct apply
-              : mpl::true_
-            {};
-        };
-    }
-}}
+        template<typename SeqRef>
+        struct apply
+          : mpl::true_
+        {};
+    };
+}}}
 
 #endif
Modified: sandbox/SOC/2009/fusion/boost/fusion/adapted/detail/mpl/mpl_iterator.hpp
==============================================================================
--- sandbox/SOC/2009/fusion/boost/fusion/adapted/detail/mpl/mpl_iterator.hpp	(original)
+++ sandbox/SOC/2009/fusion/boost/fusion/adapted/detail/mpl/mpl_iterator.hpp	2009-07-10 18:07:00 EDT (Fri, 10 Jul 2009)
@@ -21,6 +21,9 @@
 
 namespace boost { namespace fusion
 {
+    struct mpl_iterator_tag;
+    struct mpl_sequence_tag;
+
     template <typename It>
     struct mpl_iterator
       : iterator_facade<
Modified: sandbox/SOC/2009/fusion/boost/fusion/adapted/detail/mpl/next_impl.hpp
==============================================================================
--- sandbox/SOC/2009/fusion/boost/fusion/adapted/detail/mpl/next_impl.hpp	(original)
+++ sandbox/SOC/2009/fusion/boost/fusion/adapted/detail/mpl/next_impl.hpp	2009-07-10 18:07:00 EDT (Fri, 10 Jul 2009)
@@ -10,37 +10,32 @@
 
 #include <boost/mpl/next.hpp>
 
-namespace boost { namespace fusion
+namespace boost { namespace fusion { namespace extension
 {
-    struct mpl_iterator_tag;
+    template <typename Tag>
+    struct next_impl;
 
-    namespace extension
+    template <>
+    struct next_impl<mpl_iterator_tag>
     {
-        template <typename Tag>
-        struct next_impl;
-
-        template <>
-        struct next_impl<mpl_iterator_tag>
+        template <typename ItRef>
+        struct apply
         {
-            template <typename ItRef>
-            struct apply
-            {
-                typedef
-                    mpl_iterator<
-                        typename mpl::next<
-                            typename detail::identity<ItRef>::type
-                        >::type
-                    >
-                type;
+            typedef
+                mpl_iterator<
+                    typename mpl::next<
+                        typename detail::identity<ItRef>::type
+                    >::type
+                >
+            type;
 
-                static type
-                call(ItRef)
-                {
-                    return type();
-                }
-            };
+            static type
+            call(ItRef)
+            {
+                return type();
+            }
         };
-    }
-}}
+    };
+}}}
 
 #endif
Modified: sandbox/SOC/2009/fusion/boost/fusion/adapted/detail/mpl/prior_impl.hpp
==============================================================================
--- sandbox/SOC/2009/fusion/boost/fusion/adapted/detail/mpl/prior_impl.hpp	(original)
+++ sandbox/SOC/2009/fusion/boost/fusion/adapted/detail/mpl/prior_impl.hpp	2009-07-10 18:07:00 EDT (Fri, 10 Jul 2009)
@@ -10,37 +10,32 @@
 
 #include <boost/mpl/prior.hpp>
 
-namespace boost { namespace fusion
+namespace boost { namespace fusion { namespace extension
 {
-    struct mpl_iterator_tag;
+    template <typename Tag>
+    struct prior_impl;
 
-    namespace extension
+    template <>
+    struct prior_impl<mpl_iterator_tag>
     {
-        template <typename Tag>
-        struct prior_impl;
-
-        template <>
-        struct prior_impl<mpl_iterator_tag>
+        template <typename ItRef>
+        struct apply
         {
-            template <typename ItRef>
-            struct apply
-            {
-                typedef
-                    mpl_iterator<
-                        typename mpl::prior<
-                            typename detail::identity<ItRef>::type
-                        >::type
-                    >
-                type;
+            typedef
+                mpl_iterator<
+                    typename mpl::prior<
+                        typename detail::identity<ItRef>::type
+                    >::type
+                >
+            type;
 
-                static type
-                call(ItRef)
-                {
-                    return type();
-                }
-            };
+            static type
+            call(ItRef)
+            {
+                return type();
+            }
         };
-    }
-}}
+    };
+}}}
 
 #endif
Modified: sandbox/SOC/2009/fusion/boost/fusion/adapted/detail/mpl/size_impl.hpp
==============================================================================
--- sandbox/SOC/2009/fusion/boost/fusion/adapted/detail/mpl/size_impl.hpp	(original)
+++ sandbox/SOC/2009/fusion/boost/fusion/adapted/detail/mpl/size_impl.hpp	2009-07-10 18:07:00 EDT (Fri, 10 Jul 2009)
@@ -11,24 +11,19 @@
 
 #include <boost/mpl/size.hpp>
 
-namespace boost { namespace fusion
+namespace boost { namespace fusion { namespace extension
 {
-    struct mpl_sequence_tag;
+    template<typename Tag>
+    struct size_impl;
 
-    namespace extension
+    template <>
+    struct size_impl<mpl_sequence_tag>
     {
-        template<typename Tag>
-        struct size_impl;
-
-        template <>
-        struct size_impl<mpl_sequence_tag>
-        {
-            template <typename SeqRef>
-            struct apply
-              : mpl::size<typename detail::identity<SeqRef>::type>
-            {};
-        };
-    }
-}}
+        template <typename SeqRef>
+        struct apply
+          : mpl::size<typename detail::identity<SeqRef>::type>
+        {};
+    };
+}}}
 
 #endif
Modified: sandbox/SOC/2009/fusion/boost/fusion/adapted/detail/mpl/value_at_impl.hpp
==============================================================================
--- sandbox/SOC/2009/fusion/boost/fusion/adapted/detail/mpl/value_at_impl.hpp	(original)
+++ sandbox/SOC/2009/fusion/boost/fusion/adapted/detail/mpl/value_at_impl.hpp	2009-07-10 18:07:00 EDT (Fri, 10 Jul 2009)
@@ -11,24 +11,19 @@
 
 #include <boost/mpl/at.hpp>
 
-namespace boost { namespace fusion
+namespace boost { namespace fusion { namespace extension
 {
-    struct mpl_sequence_tag;
+    template <typename Tag>
+    struct value_at_impl;
 
-    namespace extension
+    template <>
+    struct value_at_impl<mpl_sequence_tag>
     {
-        template <typename Tag>
-        struct value_at_impl;
-
-        template <>
-        struct value_at_impl<mpl_sequence_tag>
-        {
-            template <typename SeqRef, typename N>
-            struct apply
-              : mpl::at<typename detail::identity<SeqRef>::type, N>
-            {};
-        };
-    }
-}}
+        template <typename SeqRef, typename N>
+        struct apply
+          : mpl::at<typename detail::identity<SeqRef>::type, N>
+        {};
+    };
+}}}
 
 #endif
Modified: sandbox/SOC/2009/fusion/boost/fusion/adapted/detail/mpl/value_of_impl.hpp
==============================================================================
--- sandbox/SOC/2009/fusion/boost/fusion/adapted/detail/mpl/value_of_impl.hpp	(original)
+++ sandbox/SOC/2009/fusion/boost/fusion/adapted/detail/mpl/value_of_impl.hpp	2009-07-10 18:07:00 EDT (Fri, 10 Jul 2009)
@@ -10,24 +10,19 @@
 
 #include <boost/mpl/deref.hpp>
 
-namespace boost { namespace fusion
+namespace boost { namespace fusion { namespace extension
 {
-    struct mpl_iterator_tag;
+    template <typename Tag>
+    struct value_of_impl;
 
-    namespace extension
+    template <>
+    struct value_of_impl<mpl_iterator_tag>
     {
-        template <typename Tag>
-        struct value_of_impl;
-
-        template <>
-        struct value_of_impl<mpl_iterator_tag>
-        {
-            template <typename ItRef>
-            struct apply
-              : mpl::deref<typename detail::identity<ItRef>::type>
-            {};
-        };
-    }
-}}
+        template <typename ItRef>
+        struct apply
+          : mpl::deref<typename detail::identity<ItRef>::type>
+        {};
+    };
+}}}
 
 #endif
Modified: sandbox/SOC/2009/fusion/boost/fusion/adapted/detail/struct/adapt_assoc_struct.hpp
==============================================================================
--- sandbox/SOC/2009/fusion/boost/fusion/adapted/detail/struct/adapt_assoc_struct.hpp	(original)
+++ sandbox/SOC/2009/fusion/boost/fusion/adapted/detail/struct/adapt_assoc_struct.hpp	2009-07-10 18:07:00 EDT (Fri, 10 Jul 2009)
@@ -49,11 +49,8 @@
         typedef BOOST_PP_TUPLE_ELEM(3, 0, xy) type;                             \
                                                                                 \
         template<typename Seq>                                                  \
-        static typename                                                         \
-            detail::result_of_forward_as<                                       \
-                BOOST_FUSION_R_ELSE_LREF(Seq),type                              \
-            >::type                                                             \
-        call(BOOST_FUSION_R_ELSE_LREF(Seq) seq)                                 \
+        static typename detail::forward_as<Seq&,type>::type                     \
+        call(Seq& seq)                                                          \
         {                                                                       \
             return seq.BOOST_PP_TUPLE_ELEM(3, 1, xy);                           \
         };                                                                      \
Modified: sandbox/SOC/2009/fusion/boost/fusion/adapted/detail/struct/adapt_base.hpp
==============================================================================
--- sandbox/SOC/2009/fusion/boost/fusion/adapted/detail/struct/adapt_base.hpp	(original)
+++ sandbox/SOC/2009/fusion/boost/fusion/adapted/detail/struct/adapt_base.hpp	2009-07-10 18:07:00 EDT (Fri, 10 Jul 2009)
@@ -44,11 +44,8 @@
         typedef BOOST_PP_TUPLE_ELEM(max_size, 0, xy) type;                      \
                                                                                 \
         template<typename Seq>                                                  \
-        static typename                                                         \
-            detail::result_of_forward_as<                                       \
-                BOOST_FUSION_R_ELSE_LREF(Seq),type                              \
-            >::type                                                             \
-        call(BOOST_FUSION_R_ELSE_LREF(Seq) seq)                                 \
+        static typename detail::forward_as<Seq&,type>::type                     \
+        call(Seq& seq)                                                          \
         {                                                                       \
             return seq.BOOST_PP_TUPLE_ELEM(max_size, 1, xy);                    \
         }                                                                       \
Modified: sandbox/SOC/2009/fusion/boost/fusion/adapted/detail/struct/at_impl.hpp
==============================================================================
--- sandbox/SOC/2009/fusion/boost/fusion/adapted/detail/struct/at_impl.hpp	(original)
+++ sandbox/SOC/2009/fusion/boost/fusion/adapted/detail/struct/at_impl.hpp	2009-07-10 18:07:00 EDT (Fri, 10 Jul 2009)
@@ -13,46 +13,41 @@
 
 #include <boost/mpl/int.hpp>
 
-namespace boost { namespace fusion
+namespace boost { namespace fusion { namespace extension
 {
-    struct struct_tag;
+    template<typename Tag>
+    struct at_impl;
 
-    namespace extension
+    template <>
+    struct at_impl<struct_tag>
     {
-        template<typename Tag>
-        struct at_impl;
-
-        template <>
-        struct at_impl<struct_tag>
+        template <typename SeqRef, typename N>
+        struct apply
         {
-            template <typename SeqRef, typename N>
-            struct apply
-            {
-                //BOOST_FUSION_INDEX_CHECK(n_value,
-                //    struct_size<Sequence>::value);
+            //BOOST_FUSION_INDEX_CHECK(n_value,
+            //    struct_size<Sequence>::value);
 
-                typedef typename
-                    detail::result_of_forward_as<
-                        SeqRef
-                      , typename struct_member<
-                            typename detail::identity<SeqRef>::type
-                          , N::value
-                        >::type
+            typedef typename
+                detail::forward_as<
+                    SeqRef
+                  , typename struct_member<
+                        typename detail::identity<SeqRef>::type
+                      , N::value
                     >::type
-                type;
+                >::type
+            type;
 
-                static type
-                call(SeqRef seq)
-                {
-                    return
-                        struct_member<
-                            typename detail::identity<SeqRef>::type
-                          , N::value
-                        >::call(seq);
-                }
-            };
+            static type
+            call(SeqRef seq)
+            {
+                return
+                    struct_member<
+                        typename detail::identity<SeqRef>::type
+                      , N::value
+                    >::call(seq);
+            }
         };
-    }
-}}
+    };
+}}}
 
 #endif
Modified: sandbox/SOC/2009/fusion/boost/fusion/adapted/detail/struct/at_key_impl.hpp
==============================================================================
--- sandbox/SOC/2009/fusion/boost/fusion/adapted/detail/struct/at_key_impl.hpp	(original)
+++ sandbox/SOC/2009/fusion/boost/fusion/adapted/detail/struct/at_key_impl.hpp	2009-07-10 18:07:00 EDT (Fri, 10 Jul 2009)
@@ -9,36 +9,33 @@
 #ifndef BOOST_FUSION_ADAPTED_DETAIL_STRUCT_AT_KEY_IMPL_HPP
 #define BOOST_FUSION_ADAPTED_DETAIL_STRUCT_AT_KEY_IMPL_HPP
 
-namespace boost { namespace fusion
+namespace boost { namespace fusion { namespace extension
 {
-    struct struct_tag;
+    template <typename Tag>
+    struct at_key_impl;
 
-    namespace extension
+    template <>
+    struct at_key_impl<struct_tag>
     {
-        template <typename Tag>
-        struct at_key_impl;
-
-        template <>
-        struct at_key_impl<struct_tag>
+        template <typename SeqRef, typename Key>
+        struct apply
         {
-            template <typename SeqRef, typename Key>
-            struct apply
-            {
-                typedef typename detail::identity<SeqRef>::type seq;
-                typedef typename struct_assoc_member<seq, Key>::type element;
+            typedef typename detail::identity<SeqRef>::type seq;
 
-                typedef typename
-                    detail::result_of_forward_as<SeqRef,element>::type
-                type;
+            typedef typename
+                detail::forward_as<
+                    SeqRef
+                  , typename struct_assoc_member<seq, Key>::type
+                >::type
+            type;
 
-                static type
-                call(SeqRef seq_)
-                {
-                    return struct_assoc_member<seq, Key>::call(seq_);
-                }
-            };
+            static type
+            call(SeqRef seq_)
+            {
+                return struct_assoc_member<seq, Key>::call(seq_);
+            }
         };
-    }
-}}
+    };
+}}}
 
 #endif
Modified: sandbox/SOC/2009/fusion/boost/fusion/adapted/detail/struct/begin_impl.hpp
==============================================================================
--- sandbox/SOC/2009/fusion/boost/fusion/adapted/detail/struct/begin_impl.hpp	(original)
+++ sandbox/SOC/2009/fusion/boost/fusion/adapted/detail/struct/begin_impl.hpp	2009-07-10 18:07:00 EDT (Fri, 10 Jul 2009)
@@ -9,31 +9,26 @@
 #ifndef BOOST_FUSION_ADAPTED_DETAIL_STRUCT_BEGIN_IMPL_HPP
 #define BOOST_FUSION_ADAPTED_DETAIL_STRUCT_BEGIN_IMPL_HPP
 
-namespace boost { namespace fusion
+namespace boost { namespace fusion { namespace extension
 {
-    struct struct_tag;
+    template<typename Tag>
+    struct begin_impl;
 
-    namespace extension
+    template <>
+    struct begin_impl<struct_tag>
     {
-        template<typename Tag>
-        struct begin_impl;
-
-        template <>
-        struct begin_impl<struct_tag>
+        template <typename SeqRef>
+        struct apply
         {
-            template <typename SeqRef>
-            struct apply
-            {
-                typedef struct_iterator<SeqRef, 0> type;
+            typedef struct_iterator<SeqRef, 0> type;
 
-                static type
-                call(SeqRef seq)
-                {
-                    return type(seq,0);
-                }
-            };
+            static type
+            call(SeqRef seq)
+            {
+                return type(seq,0);
+            }
         };
-    }
-}}
+    };
+}}}
 
 #endif
Modified: sandbox/SOC/2009/fusion/boost/fusion/adapted/detail/struct/category_of_impl.hpp
==============================================================================
--- sandbox/SOC/2009/fusion/boost/fusion/adapted/detail/struct/category_of_impl.hpp	(original)
+++ sandbox/SOC/2009/fusion/boost/fusion/adapted/detail/struct/category_of_impl.hpp	2009-07-10 18:07:00 EDT (Fri, 10 Jul 2009)
@@ -13,7 +13,6 @@
 
 namespace boost { namespace fusion
 {
-    struct struct_tag;
     struct random_access_traversal_tag;
 
     namespace extension
Modified: sandbox/SOC/2009/fusion/boost/fusion/adapted/detail/struct/end_impl.hpp
==============================================================================
--- sandbox/SOC/2009/fusion/boost/fusion/adapted/detail/struct/end_impl.hpp	(original)
+++ sandbox/SOC/2009/fusion/boost/fusion/adapted/detail/struct/end_impl.hpp	2009-07-10 18:07:00 EDT (Fri, 10 Jul 2009)
@@ -9,38 +9,33 @@
 #ifndef BOOST_FUSION_ADAPTED_DETAIL_STRUCT_END_IMPL_HPP
 #define BOOST_FUSION_ADAPTED_DETAIL_STRUCT_END_IMPL_HPP
 
-namespace boost { namespace fusion
+namespace boost { namespace fusion { namespace extension
 {
-    struct struct_tag;
+    template <typename Tag>
+    struct end_impl;
 
-    namespace extension
+    template <>
+    struct end_impl<struct_tag>
     {
-        template <typename Tag>
-        struct end_impl;
-
-        template <>
-        struct end_impl<struct_tag>
+        template <typename SeqRef>
+        struct apply
         {
-            template <typename SeqRef>
-            struct apply
-            {
-                typedef
-                    struct_iterator<
-                        SeqRef
-                      , struct_size<
-                            typename detail::identity<SeqRef>::type
-                        >::value
-                    >
-                type;
+            typedef
+                struct_iterator<
+                    SeqRef
+                  , struct_size<
+                        typename detail::identity<SeqRef>::type
+                    >::value
+                >
+            type;
 
-                static type
-                call(SeqRef seq)
-                {
-                    return type(seq,0);
-                }
-            };
+            static type
+            call(SeqRef seq)
+            {
+                return type(seq,0);
+            }
         };
-    }
-}}
+    };
+}}}
 
 #endif
Modified: sandbox/SOC/2009/fusion/boost/fusion/adapted/detail/struct/extension.hpp
==============================================================================
--- sandbox/SOC/2009/fusion/boost/fusion/adapted/detail/struct/extension.hpp	(original)
+++ sandbox/SOC/2009/fusion/boost/fusion/adapted/detail/struct/extension.hpp	2009-07-10 18:07:00 EDT (Fri, 10 Jul 2009)
@@ -11,21 +11,26 @@
 
 #include <boost/type_traits/add_const.hpp>
 
-namespace boost { namespace fusion { namespace extension
+namespace boost { namespace fusion
 {
-    struct no_such_member;
+    struct struct_tag;
 
-    template<typename Seq, int N>
-    struct struct_member;
+    namespace extension
+    {
+        struct no_such_member;
 
-    template<typename Seq>
-    struct struct_size;
+        template<typename Seq, int N>
+        struct struct_member;
 
-    template<typename Seq, typename Key>
-    struct struct_assoc_member
-    {
-        typedef no_such_member type;
-    };
-}}}
+        template<typename Seq>
+        struct struct_size;
+
+        template<typename Seq, typename Key>
+        struct struct_assoc_member
+        {
+            typedef no_such_member type;
+        };
+    }
+}}
 
 #endif
Modified: sandbox/SOC/2009/fusion/boost/fusion/adapted/detail/struct/has_key_impl.hpp
==============================================================================
--- sandbox/SOC/2009/fusion/boost/fusion/adapted/detail/struct/has_key_impl.hpp	(original)
+++ sandbox/SOC/2009/fusion/boost/fusion/adapted/detail/struct/has_key_impl.hpp	2009-07-10 18:07:00 EDT (Fri, 10 Jul 2009)
@@ -9,37 +9,32 @@
 #ifndef BOOST_FUSION_ADAPTED_DETAIL_STRUCT_HAS_KEY_IMPL_HPP
 #define BOOST_FUSION_ADAPTED_DETAIL_STRUCT_HAS_KEY_IMPL_HPP
 
-#include <boost/type_traits/is_same.hpp>
 #include <boost/mpl/not.hpp>
+#include <boost/type_traits/is_same.hpp>
 
-namespace boost { namespace fusion {
+namespace boost { namespace fusion { namespace extension
+{
+    struct no_such_member;
 
-    struct struct_tag;
+    template<typename Tag>
+    struct has_key_impl;
 
-    namespace extension
+    template<>
+    struct has_key_impl<struct_tag>
     {
-        struct no_such_member;
-
-        template<typename Tag>
-        struct has_key_impl;
-
-        template<>
-        struct has_key_impl<struct_tag>
-        {
-            template<typename SeqRef, typename Key>
-            struct apply
-              : mpl::not_<
-                    is_same<
-                        no_such_member
-                      , typename struct_assoc_member<
-                            typename detail::identity<SeqRef>::type
-                          , Key
-                        >::type
-                    >
+        template<typename SeqRef, typename Key>
+        struct apply
+          : mpl::not_<
+                is_same<
+                    no_such_member
+                  , typename struct_assoc_member<
+                        typename detail::identity<SeqRef>::type
+                      , Key
+                    >::type
                 >
-            {};
-        };
-    }
-}}
+            >
+        {};
+    };
+}}}
 
 #endif
Modified: sandbox/SOC/2009/fusion/boost/fusion/adapted/detail/struct/is_sequence_impl.hpp
==============================================================================
--- sandbox/SOC/2009/fusion/boost/fusion/adapted/detail/struct/is_sequence_impl.hpp	(original)
+++ sandbox/SOC/2009/fusion/boost/fusion/adapted/detail/struct/is_sequence_impl.hpp	2009-07-10 18:07:00 EDT (Fri, 10 Jul 2009)
@@ -11,24 +11,19 @@
 
 #include <boost/mpl/bool.hpp>
 
-namespace boost { namespace fusion
+namespace boost { namespace fusion { namespace extension
 {
-    struct struct_tag;
+    template<typename Tag>
+    struct is_sequence_impl;
 
-    namespace extension
+    template<>
+    struct is_sequence_impl<struct_tag>
     {
-        template<typename Tag>
-        struct is_sequence_impl;
-
-        template<>
-        struct is_sequence_impl<struct_tag>
-        {
-            template<typename SeqRef>
-            struct apply
-              : mpl::true_
-            {};
-        };
-    }
-}}
+        template<typename SeqRef>
+        struct apply
+          : mpl::true_
+        {};
+    };
+}}}
 
 #endif
Modified: sandbox/SOC/2009/fusion/boost/fusion/adapted/detail/struct/is_view_impl.hpp
==============================================================================
--- sandbox/SOC/2009/fusion/boost/fusion/adapted/detail/struct/is_view_impl.hpp	(original)
+++ sandbox/SOC/2009/fusion/boost/fusion/adapted/detail/struct/is_view_impl.hpp	2009-07-10 18:07:00 EDT (Fri, 10 Jul 2009)
@@ -11,24 +11,19 @@
 
 #include <boost/mpl/bool.hpp>
 
-namespace boost { namespace fusion
+namespace boost { namespace fusion { namespace extension
 {
-    struct struct_tag;
+    template<typename Tag>
+    struct is_view_impl;
 
-    namespace extension
+    template<>
+    struct is_view_impl<struct_tag>
     {
-        template<typename Tag>
-        struct is_view_impl;
-
-        template<>
-        struct is_view_impl<struct_tag>
-        {
-            template<typename SeqRef>
-            struct apply
-              : mpl::false_
-            {};
-        };
-    }
-}}
+        template<typename SeqRef>
+        struct apply
+          : mpl::false_
+        {};
+    };
+}}}
 
 #endif
Modified: sandbox/SOC/2009/fusion/boost/fusion/adapted/detail/struct/size_impl.hpp
==============================================================================
--- sandbox/SOC/2009/fusion/boost/fusion/adapted/detail/struct/size_impl.hpp	(original)
+++ sandbox/SOC/2009/fusion/boost/fusion/adapted/detail/struct/size_impl.hpp	2009-07-10 18:07:00 EDT (Fri, 10 Jul 2009)
@@ -11,30 +11,19 @@
 
 #include <boost/mpl/int.hpp>
 
-namespace boost { namespace fusion
+namespace boost { namespace fusion { namespace extension
 {
-    namespace extension
-    {
-        template <typename Struct>
-        struct struct_size;
-    }
-
-    struct struct_tag;
+    template<typename Tag>
+    struct size_impl;
 
-    namespace extension
+    template <>
+    struct size_impl<struct_tag>
     {
-        template<typename Tag>
-        struct size_impl;
-
-        template <>
-        struct size_impl<struct_tag>
-        {
-            template <typename SeqRef>
-            struct apply
-              : struct_size<typename detail::identity<SeqRef>::type>
-            {};
-        };
-    }
-}}
+        template <typename SeqRef>
+        struct apply
+          : struct_size<typename detail::identity<SeqRef>::type>
+        {};
+    };
+}}}
 
 #endif
Modified: sandbox/SOC/2009/fusion/boost/fusion/adapted/detail/struct/struct_iterator.hpp
==============================================================================
--- sandbox/SOC/2009/fusion/boost/fusion/adapted/detail/struct/struct_iterator.hpp	(original)
+++ sandbox/SOC/2009/fusion/boost/fusion/adapted/detail/struct/struct_iterator.hpp	2009-07-10 18:07:00 EDT (Fri, 10 Jul 2009)
@@ -41,7 +41,7 @@
             typedef typename detail::identity<SeqRef>::type identity_struct;
 
             typedef typename
-                detail::result_of_forward_as<
+                detail::forward_as<
                     SeqRef
                   , typename extension::struct_member<identity_struct, N>::type
                 >::type
Modified: sandbox/SOC/2009/fusion/boost/fusion/adapted/detail/struct/value_at_impl.hpp
==============================================================================
--- sandbox/SOC/2009/fusion/boost/fusion/adapted/detail/struct/value_at_impl.hpp	(original)
+++ sandbox/SOC/2009/fusion/boost/fusion/adapted/detail/struct/value_at_impl.hpp	2009-07-10 18:07:00 EDT (Fri, 10 Jul 2009)
@@ -11,32 +11,21 @@
 
 #include <boost/fusion/support/assert.hpp>
 
-namespace boost { namespace fusion
+namespace boost { namespace fusion { namespace extension
 {
-    struct struct_tag;
+    template<typename Tag>
+    struct value_at_impl;
 
-    namespace extension
+    template <>
+    struct value_at_impl<struct_tag>
     {
-        template<typename SeqRef>
-        struct value_at_impl;
-
-        template <typename Struct, int N>
-        struct struct_member;
-
-        template <typename Struct>
-        struct struct_size;
-
-        template <>
-        struct value_at_impl<struct_tag>
+        template <typename SeqRef, typename N>
+        struct apply
+          : struct_member<typename detail::identity<SeqRef>::type, N::value>
         {
-            template <typename SeqRef, typename N>
-            struct apply
-              : struct_member<typename detail::identity<SeqRef>::type, N::value>
-            {
-                //BOOST_FUSION_INDEX_CHECK(N::value, struct_size<Sequence>::value);
-            };
+            //BOOST_FUSION_INDEX_CHECK(N::value, struct_size<Sequence>::value);
         };
-    }
-}}
+    };
+}}}
 
 #endif
Modified: sandbox/SOC/2009/fusion/boost/fusion/adapted/detail/struct/value_at_key_impl.hpp
==============================================================================
--- sandbox/SOC/2009/fusion/boost/fusion/adapted/detail/struct/value_at_key_impl.hpp	(original)
+++ sandbox/SOC/2009/fusion/boost/fusion/adapted/detail/struct/value_at_key_impl.hpp	2009-07-10 18:07:00 EDT (Fri, 10 Jul 2009)
@@ -11,27 +11,22 @@
 
 #include <boost/mpl/if.hpp>
 
-namespace boost { namespace fusion
+namespace boost { namespace fusion { namespace extension
 {
-    struct struct_tag;
+    template<typename SeqRef>
+    struct value_at_key_impl;
 
-    namespace extension
+    template <>
+    struct value_at_key_impl<struct_tag>
     {
-        template<typename SeqRef>
-        struct value_at_key_impl;
-
-        template <>
-        struct value_at_key_impl<struct_tag>
-        {
-            template <typename SeqRef, typename Key>
-            struct apply
-              : struct_assoc_member<
-                    typename detail::identity<SeqRef>::type
-                  , Key
-                >
-            {};
-        };
-    }
-}}
+        template <typename SeqRef, typename Key>
+        struct apply
+          : struct_assoc_member<
+                typename detail::identity<SeqRef>::type
+              , Key
+            >
+        {};
+    };
+}}}
 
 #endif
Modified: sandbox/SOC/2009/fusion/boost/fusion/adapted/mpl.hpp
==============================================================================
--- sandbox/SOC/2009/fusion/boost/fusion/adapted/mpl.hpp	(original)
+++ sandbox/SOC/2009/fusion/boost/fusion/adapted/mpl.hpp	2009-07-10 18:07:00 EDT (Fri, 10 Jul 2009)
@@ -22,8 +22,8 @@
 #include <boost/fusion/adapted/detail/mpl/end_impl.hpp>
 #include <boost/fusion/adapted/detail/mpl/equal_to_impl.hpp>
 #include <boost/fusion/adapted/detail/mpl/has_key_impl.hpp>
-#include <boost/fusion/adapted/detail/mpl/is_sequence_impl.hpp>
 #include <boost/fusion/adapted/detail/mpl/is_view_impl.hpp>
+#include <boost/fusion/adapted/detail/mpl/is_sequence_impl.hpp>
 #include <boost/fusion/adapted/detail/mpl/next_impl.hpp>
 #include <boost/fusion/adapted/detail/mpl/prior_impl.hpp>
 #include <boost/fusion/adapted/detail/mpl/size_impl.hpp>
Modified: sandbox/SOC/2009/fusion/boost/fusion/adapted/std_pair.hpp
==============================================================================
--- sandbox/SOC/2009/fusion/boost/fusion/adapted/std_pair.hpp	(original)
+++ sandbox/SOC/2009/fusion/boost/fusion/adapted/std_pair.hpp	2009-07-10 18:07:00 EDT (Fri, 10 Jul 2009)
@@ -1,15 +1,13 @@
-/*=============================================================================
-    Copyright (c) 2001-2006 Joel de Guzman
-    Copyright (c) 2005-2006 Dan Marsden
-
-    Distributed under 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)
-==============================================================================*/
+// Copyright Christopher Schmidt 2009.
+// Distributed under 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_FUSION_ADAPTED_STD_PAIR_HPP
 #define BOOST_FUSION_ADAPTED_STD_PAIR_HPP
 
 #include <boost/fusion/adapted/struct.hpp>
+#include <boost/fusion/support/ref.hpp>
 
 #include <boost/mpl/int.hpp>
 #include <boost/config/no_tr1/utility.hpp>
@@ -29,49 +27,38 @@
 
 #undef BOOST_FUSION_STD_PAIR_TAG_OF_SPECIALIZATION
 
-namespace boost { namespace fusion
+namespace boost { namespace fusion { namespace extension
 {
-    namespace extension
+    template <typename T1, typename T2>
+    struct struct_member<std::pair<T1, T2>, 0>
     {
-        template <typename T1, typename T2>
-        struct struct_member<std::pair<T1, T2>, 0>
+        typedef T1 type;
+
+        template<typename Pair>
+        static typename detail::forward_as<Pair&, type>::type
+        call(Pair& pair)
         {
-            typedef T1 type;
+            return pair.first;
+        }
+    };
 
-            template<typename Pair>
-            static typename
-                detail::result_of_forward_as<
-                    BOOST_FUSION_R_ELSE_LREF(Pair)
-                  , type
-                >::type
-            call(BOOST_FUSION_R_ELSE_LREF(Pair) pair)
-            {
-                return pair.first;
-            }
-        };
+    template <typename T1, typename T2>
+    struct struct_member<std::pair<T1, T2>, 1>
+    {
+        typedef T2 type;
 
-        template <typename T1, typename T2>
-        struct struct_member<std::pair<T1, T2>, 1>
+        template<typename Pair>
+        static typename detail::forward_as<Pair&, type>::type
+        call(Pair& pair)
         {
-            typedef T2 type;
+            return pair.second;
+        }
+    };
 
-            template<typename Pair>
-            static typename
-                detail::result_of_forward_as<
-                    BOOST_FUSION_R_ELSE_LREF(Pair)
-                  , type
-                >::type
-            call(BOOST_FUSION_R_ELSE_LREF(Pair) pair)
-            {
-                return pair.second;
-            }
-        };
-
-        template <typename T1, typename T2>
-        struct struct_size<std::pair<T1, T2> >
-          : mpl::int_<2>
-        {};
-    }
-}}
+    template <typename T1, typename T2>
+    struct struct_size<std::pair<T1, T2> >
+      : mpl::int_<2>
+    {};
+}}}
 
 #endif
Modified: sandbox/SOC/2009/fusion/boost/fusion/adapted/struct.hpp
==============================================================================
--- sandbox/SOC/2009/fusion/boost/fusion/adapted/struct.hpp	(original)
+++ sandbox/SOC/2009/fusion/boost/fusion/adapted/struct.hpp	2009-07-10 18:07:00 EDT (Fri, 10 Jul 2009)
@@ -15,18 +15,18 @@
 #include <boost/fusion/adapted/detail/struct/adapt_base.hpp>
 #include <boost/fusion/adapted/detail/struct/adapt_struct.hpp>
 #include <boost/fusion/adapted/detail/struct/adapt_assoc_struct.hpp>
-#include <boost/fusion/adapted/detail/struct/struct_iterator.hpp>
 
 #include <boost/fusion/adapted/detail/struct/at_impl.hpp>
 #include <boost/fusion/adapted/detail/struct/at_key_impl.hpp>
-#include <boost/fusion/adapted/detail/struct/begin_impl.hpp>
-#include <boost/fusion/adapted/detail/struct/category_of_impl.hpp>
-#include <boost/fusion/adapted/detail/struct/end_impl.hpp>
-#include <boost/fusion/adapted/detail/struct/has_key_impl.hpp>
-#include <boost/fusion/adapted/detail/struct/is_sequence_impl.hpp>
 #include <boost/fusion/adapted/detail/struct/is_view_impl.hpp>
-#include <boost/fusion/adapted/detail/struct/size_impl.hpp>
+#include <boost/fusion/adapted/detail/struct/is_sequence_impl.hpp>
 #include <boost/fusion/adapted/detail/struct/value_at_impl.hpp>
 #include <boost/fusion/adapted/detail/struct/value_at_key_impl.hpp>
+#include <boost/fusion/adapted/detail/struct/category_of_impl.hpp>
+#include <boost/fusion/adapted/detail/struct/has_key_impl.hpp>
+#include <boost/fusion/adapted/detail/struct/size_impl.hpp>
+#include <boost/fusion/adapted/detail/struct/struct_iterator.hpp>
+#include <boost/fusion/adapted/detail/struct/begin_impl.hpp>
+#include <boost/fusion/adapted/detail/struct/end_impl.hpp>
 
 #endif
Modified: sandbox/SOC/2009/fusion/boost/fusion/adapted/struct/adapt_assoc_struct.hpp
==============================================================================
--- sandbox/SOC/2009/fusion/boost/fusion/adapted/struct/adapt_assoc_struct.hpp	(original)
+++ sandbox/SOC/2009/fusion/boost/fusion/adapted/struct/adapt_assoc_struct.hpp	2009-07-10 18:07:00 EDT (Fri, 10 Jul 2009)
@@ -6,6 +6,8 @@
 #ifndef BOOST_FUSION_ADAPTED_STRUCT_ADAPT_ASSOC_STRUCT_HPP
 #define BOOST_FUSION_ADAPTED_STRUCT_ADAPT_ASSOC_STRUCT_HPP
 
+//TODO remove this header?
+
 #include <boost/fusion/adapted/struct.hpp>
 
 #endif
Modified: sandbox/SOC/2009/fusion/boost/fusion/adapted/struct/adapt_struct.hpp
==============================================================================
--- sandbox/SOC/2009/fusion/boost/fusion/adapted/struct/adapt_struct.hpp	(original)
+++ sandbox/SOC/2009/fusion/boost/fusion/adapted/struct/adapt_struct.hpp	2009-07-10 18:07:00 EDT (Fri, 10 Jul 2009)
@@ -6,6 +6,8 @@
 #ifndef BOOST_FUSION_ADAPTED_STRUCT_ADAPT_STRUCT_HPP
 #define BOOST_FUSION_ADAPTED_STRUCT_ADAPT_STRUCT_HPP
 
+//TODO remove this header?
+
 #include <boost/fusion/adapted/struct.hpp>
 
 #endif
Modified: sandbox/SOC/2009/fusion/boost/fusion/container/list.hpp
==============================================================================
--- sandbox/SOC/2009/fusion/boost/fusion/container/list.hpp	(original)
+++ sandbox/SOC/2009/fusion/boost/fusion/container/list.hpp	2009-07-10 18:07:00 EDT (Fri, 10 Jul 2009)
@@ -9,8 +9,6 @@
 #define BOOST_FUSION_CONTAINER_LIST_HPP
 
 #include <boost/fusion/container/list/cons.hpp>
-#include <boost/fusion/container/list/cons_iterator.hpp>
-#include <boost/fusion/container/list/limits.hpp>
 #include <boost/fusion/container/list/list.hpp>
 #include <boost/fusion/container/list/convert.hpp>
 
Modified: sandbox/SOC/2009/fusion/boost/fusion/container/list/cons.hpp
==============================================================================
--- sandbox/SOC/2009/fusion/boost/fusion/container/list/cons.hpp	(original)
+++ sandbox/SOC/2009/fusion/boost/fusion/container/list/cons.hpp	2009-07-10 18:07:00 EDT (Fri, 10 Jul 2009)
@@ -18,18 +18,24 @@
 #include <boost/fusion/support/assign_tags.hpp>
 #include <boost/fusion/support/sequence_assign.hpp>
 
-#include <boost/fusion/container/list/cons_iterator.hpp>
-#include <boost/fusion/container/list/detail/cons/begin_impl.hpp>
-#include <boost/fusion/container/list/detail/cons/end_impl.hpp>
-#include <boost/fusion/container/list/detail/cons/at_impl.hpp>
-#include <boost/fusion/container/list/detail/cons/value_at_impl.hpp>
-#include <boost/fusion/container/list/detail/cons/empty_impl.hpp>
-
 #include <boost/utility/enable_if.hpp>
 #include <boost/mpl/int.hpp>
 #include <boost/mpl/bool.hpp>
 #include <boost/mpl/or.hpp>
 
+#include <boost/fusion/container/list/detail/cons/cons_fwd.hpp>
+#include <boost/fusion/container/list/detail/cons/at_impl.hpp>
+#include <boost/fusion/container/list/detail/cons/value_at_impl.hpp>
+#include <boost/fusion/container/list/detail/cons/empty_impl.hpp>
+
+#include <boost/fusion/container/list/detail/cons/cons_iterator.hpp>
+#include <boost/fusion/container/list/detail/cons/begin_impl.hpp>
+#include <boost/fusion/container/list/detail/cons/end_impl.hpp>
+#include <boost/fusion/container/list/detail/cons/deref_impl.hpp>
+#include <boost/fusion/container/list/detail/cons/next_impl.hpp>
+#include <boost/fusion/container/list/detail/cons/value_of_impl.hpp>
+#include <boost/fusion/container/list/detail/cons/equal_to_impl.hpp>
+
 namespace boost { namespace fusion
 {
     struct void_;
Deleted: sandbox/SOC/2009/fusion/boost/fusion/container/list/cons_iterator.hpp
==============================================================================
--- sandbox/SOC/2009/fusion/boost/fusion/container/list/cons_iterator.hpp	2009-07-10 18:07:00 EDT (Fri, 10 Jul 2009)
+++ (empty file)
@@ -1,85 +0,0 @@
-/*=============================================================================
-    Copyright (c) 2005 Joel de Guzman
-    Copyright (c) 2005 Eric Niebler
-
-    Distributed under 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_FUSION_CONTAINER_LIST_CONS_ITERATOR_HPP
-#define BOOST_FUSION_CONTAINER_LIST_CONS_ITERATOR_HPP
-
-#include <boost/fusion/support/iterator_base.hpp>
-#include <boost/fusion/container/list/list_fwd.hpp>
-
-#include <boost/fusion/container/list/detail/cons/deref_impl.hpp>
-#include <boost/fusion/container/list/detail/cons/next_impl.hpp>
-#include <boost/fusion/container/list/detail/cons/value_of_impl.hpp>
-#include <boost/fusion/container/list/detail/cons/equal_to_impl.hpp>
-
-namespace boost { namespace fusion
-{
-    struct nil;
-    struct cons_iterator_tag;
-    struct forward_traversal_tag;
-
-    template <typename Cons = nil>
-    struct cons_iterator
-      : iterator_base<cons_iterator<Cons> >
-    {
-        typedef cons_iterator_tag fusion_tag;
-        typedef forward_traversal_tag category;
-        typedef Cons cons_type;
-
-        template<typename OtherIt>
-        cons_iterator(OtherIt const& it)
-          : cons(it.cons)
-        {}
-
-        cons_iterator(cons_type cons, int)
-          : cons(&cons)
-        {}
-
-        template<typename OtherIt>
-        cons_iterator&
-        operator=(OtherIt const& other_it)
-        {
-            cons=other_it.cons;
-            return *this;
-        }
-
-        typename detail::remove_reference<cons_type>::type* cons;
-    };
-
-    struct nil_iterator
-      : iterator_base<nil_iterator>
-    {
-        typedef forward_traversal_tag category;
-        typedef cons_iterator_tag fusion_tag;
-        typedef nil cons_type;
-
-        nil_iterator()
-        {}
-
-        nil_iterator(nil const&,int)
-        {}
-    };
-
-#define NIL_ITERATOR(COMBINATION,_)\
-      template <>\
-      struct cons_iterator<nil COMBINATION>\
-        : nil_iterator\
-      {\
-          cons_iterator()\
-          {}\
-          \
-          explicit cons_iterator(nil COMBINATION, int)\
-          {}\
-      };
-
-    BOOST_FUSION_ALL_CV_REF_COMBINATIONS(NIL_ITERATOR,_)
-
-#undef NIL_ITERATOR
-}}
-
-#endif
Modified: sandbox/SOC/2009/fusion/boost/fusion/container/list/convert.hpp
==============================================================================
--- sandbox/SOC/2009/fusion/boost/fusion/container/list/convert.hpp	(original)
+++ sandbox/SOC/2009/fusion/boost/fusion/container/list/convert.hpp	2009-07-10 18:07:00 EDT (Fri, 10 Jul 2009)
@@ -9,9 +9,10 @@
 #define BOOST_FUSION_CONTAINER_LIST_CONVERT_HPP
 
 #include <boost/fusion/container/list/list.hpp>
-#include <boost/fusion/container/list/detail/list/convert_impl.hpp>
 #include <boost/fusion/support/ref.hpp>
 
+#include <boost/fusion/container/list/detail/list/convert_impl.hpp>
+
 namespace boost { namespace fusion
 {
     namespace result_of
Modified: sandbox/SOC/2009/fusion/boost/fusion/container/list/detail/cons/at_impl.hpp
==============================================================================
--- sandbox/SOC/2009/fusion/boost/fusion/container/list/detail/cons/at_impl.hpp	(original)
+++ sandbox/SOC/2009/fusion/boost/fusion/container/list/detail/cons/at_impl.hpp	2009-07-10 18:07:00 EDT (Fri, 10 Jul 2009)
@@ -74,8 +74,6 @@
         };
     }
 
-    struct cons_tag;
-
     namespace extension
     {
         template <typename Tag>
@@ -88,24 +86,24 @@
             struct apply
             {
                 typedef typename
-                    detail::cons_advance<SeqRef, N::value>::type
-                element;
-                typedef typename
-                    detail::result_of_forward_as<SeqRef,element>::type
+                    detail::forward_as<
+                        SeqRef
+                      , typename detail::cons_advance<SeqRef, N::value>::type
+                    >::type
                 type;
 
                 template <typename Cons, int N2>
                 static type
-                call(Cons&& s, mpl::int_<N2>)
+                call(Cons& cons, mpl::int_<N2>)
                 {
-                    return call(s.cdr, mpl::int_<N2-1>());
+                    return call(cons.cdr, mpl::int_<N2-1>());
                 }
 
                 template <typename Cons>
                 static type
-                call(Cons&& s, mpl::int_<0>)
+                call(Cons& cons, mpl::int_<0>)
                 {
-                    return s.car;
+                    return cons.car;
                 }
 
                 static type
Modified: sandbox/SOC/2009/fusion/boost/fusion/container/list/detail/cons/begin_impl.hpp
==============================================================================
--- sandbox/SOC/2009/fusion/boost/fusion/container/list/detail/cons/begin_impl.hpp	(original)
+++ sandbox/SOC/2009/fusion/boost/fusion/container/list/detail/cons/begin_impl.hpp	2009-07-10 18:07:00 EDT (Fri, 10 Jul 2009)
@@ -9,34 +9,26 @@
 #ifndef BOOST_FUSION_CONTAINER_LIST_DETAIL_CONS_BEGIN_IMPL_HPP
 #define BOOST_FUSION_CONTAINER_LIST_DETAIL_CONS_BEGIN_IMPL_HPP
 
-namespace boost { namespace fusion
+namespace boost { namespace fusion { namespace extension
 {
-    struct cons_tag;
+    template <typename Tag>
+    struct begin_impl;
 
-    template <typename Cons>
-    struct cons_iterator;
-
-    namespace extension
+    template <>
+    struct begin_impl<cons_tag>
     {
-        template <typename Tag>
-        struct begin_impl;
-
-        template <>
-        struct begin_impl<cons_tag>
+        template <typename SeqRef>
+        struct apply
         {
-            template <typename SeqRef>
-            struct apply
-            {
-                typedef cons_iterator<SeqRef> type;
+            typedef cons_iterator<SeqRef> type;
 
-                static type
-                call(SeqRef t)
-                {
-                    return type(t,0);
-                }
-            };
+            static type
+            call(SeqRef t)
+            {
+                return type(t,0);
+            }
         };
-    }
-}}
+    };
+}}}
 
 #endif
Added: sandbox/SOC/2009/fusion/boost/fusion/container/list/detail/cons/cons_fwd.hpp
==============================================================================
--- (empty file)
+++ sandbox/SOC/2009/fusion/boost/fusion/container/list/detail/cons/cons_fwd.hpp	2009-07-10 18:07:00 EDT (Fri, 10 Jul 2009)
@@ -0,0 +1,19 @@
+// Copyright Christopher Schmidt 2009.
+// Distributed under 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_FUSION_CONTAINER_LIST_DETAIL_CONS_CONS_FWD_HPP
+#define BOOST_FUSION_CONTAINER_LIST_DETAIL_CONS_CONS_FWD_HPP
+
+namespace boost { namespace fusion
+{
+    struct cons_tag;
+
+    struct nil;
+
+    template <typename Car, typename Cdr>
+    struct cons;
+}}
+
+#endif
Added: sandbox/SOC/2009/fusion/boost/fusion/container/list/detail/cons/cons_iterator.hpp
==============================================================================
--- (empty file)
+++ sandbox/SOC/2009/fusion/boost/fusion/container/list/detail/cons/cons_iterator.hpp	2009-07-10 18:07:00 EDT (Fri, 10 Jul 2009)
@@ -0,0 +1,78 @@
+/*=============================================================================
+    Copyright (c) 2005 Joel de Guzman
+    Copyright (c) 2005 Eric Niebler
+
+    Distributed under 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_FUSION_CONTAINER_LIST_DETAIL_CONS_CONS_ITERATOR_HPP
+#define BOOST_FUSION_CONTAINER_LIST_DETAIL_CONS_CONS_ITERATOR_HPP
+
+#include <boost/fusion/support/iterator_base.hpp>
+
+namespace boost { namespace fusion
+{
+    struct cons_iterator_tag;
+    struct forward_traversal_tag;
+
+    template <typename Cons = nil>
+    struct cons_iterator
+      : iterator_base<cons_iterator<Cons> >
+    {
+        typedef cons_iterator_tag fusion_tag;
+        typedef forward_traversal_tag category;
+        typedef Cons cons_type;
+
+        template<typename OtherIt>
+        cons_iterator(OtherIt const& it)
+          : cons(it.cons)
+        {}
+
+        cons_iterator(cons_type cons, int)
+          : cons(&cons)
+        {}
+
+        template<typename OtherIt>
+        cons_iterator&
+        operator=(OtherIt const& other_it)
+        {
+            cons=other_it.cons;
+            return *this;
+        }
+
+        typename detail::remove_reference<cons_type>::type* cons;
+    };
+
+    struct nil_iterator
+      : iterator_base<nil_iterator>
+    {
+        typedef forward_traversal_tag category;
+        typedef cons_iterator_tag fusion_tag;
+        typedef nil cons_type;
+
+        nil_iterator()
+        {}
+
+        nil_iterator(nil const&,int)
+        {}
+    };
+
+#define NIL_ITERATOR(COMBINATION,_)\
+      template <>\
+      struct cons_iterator<nil COMBINATION>\
+        : nil_iterator\
+      {\
+          cons_iterator()\
+          {}\
+          \
+          explicit cons_iterator(nil COMBINATION, int)\
+          {}\
+      };
+
+    BOOST_FUSION_ALL_CV_REF_COMBINATIONS(NIL_ITERATOR,_)
+
+#undef NIL_ITERATOR
+}}
+
+#endif
Modified: sandbox/SOC/2009/fusion/boost/fusion/container/list/detail/cons/convert_impl.hpp
==============================================================================
--- sandbox/SOC/2009/fusion/boost/fusion/container/list/detail/cons/convert_impl.hpp	(original)
+++ sandbox/SOC/2009/fusion/boost/fusion/container/list/detail/cons/convert_impl.hpp	2009-07-10 18:07:00 EDT (Fri, 10 Jul 2009)
@@ -13,40 +13,35 @@
 #include <boost/fusion/sequence/intrinsic/begin.hpp>
 #include <boost/fusion/sequence/intrinsic/end.hpp>
 
-namespace boost { namespace fusion
+namespace boost { namespace fusion { namespace extension
 {
-    struct cons_tag;
+    template <typename T>
+    struct convert_impl;
 
-    namespace extension
+    template <>
+    struct convert_impl<cons_tag>
     {
-        template <typename T>
-        struct convert_impl;
-
-        template <>
-        struct convert_impl<cons_tag>
+        template <typename SeqRef>
+        struct apply
         {
-            template <typename SeqRef>
-            struct apply
-            {
-                typedef
-                    detail::build_cons<
-                        typename result_of::begin<SeqRef>::type
-                      , typename result_of::end<SeqRef>::type
-                    >
-                build_cons;
+            typedef
+                detail::build_cons<
+                    typename result_of::begin<SeqRef>::type
+                  , typename result_of::end<SeqRef>::type
+                >
+            build_cons;
 
-                typedef typename build_cons::type type;
+            typedef typename build_cons::type type;
 
-                static type
-                call(SeqRef seq)
-                {
-                    return build_cons::call(
-                            fusion::begin(seq),
-                            fusion::end(seq));
-                }
-            };
+            static type
+            call(SeqRef seq)
+            {
+                return build_cons::call(
+                        fusion::begin(seq),
+                        fusion::end(seq));
+            }
         };
-    }
-}}
+    };
+}}}
 
 #endif
Modified: sandbox/SOC/2009/fusion/boost/fusion/container/list/detail/cons/deref_impl.hpp
==============================================================================
--- sandbox/SOC/2009/fusion/boost/fusion/container/list/detail/cons/deref_impl.hpp	(original)
+++ sandbox/SOC/2009/fusion/boost/fusion/container/list/detail/cons/deref_impl.hpp	2009-07-10 18:07:00 EDT (Fri, 10 Jul 2009)
@@ -9,40 +9,35 @@
 #ifndef BOOST_FUSION_CONTAINER_LIST_DETAIL_CONS_DEREF_IMPL_HPP
 #define BOOST_FUSION_CONTAINER_LIST_DETAIL_CONS_DEREF_IMPL_HPP
 
-namespace boost { namespace fusion
+namespace boost { namespace fusion { namespace extension
 {
-    struct cons_iterator_tag;
+    template <typename Tag>
+    struct deref_impl;
 
-    namespace extension
+    template <>
+    struct deref_impl<cons_iterator_tag>
     {
-        template <typename Tag>
-        struct deref_impl;
-
-        template <>
-        struct deref_impl<cons_iterator_tag>
+        template <typename ItRef>
+        struct apply
         {
-            template <typename ItRef>
-            struct apply
-            {
-                typedef typename
-                    detail::remove_reference<ItRef>::type::cons_type
-                cons_type;
-                typedef typename
-                    detail::remove_reference<cons_type>::type::car_type
-                car_type;
+            typedef typename
+                detail::remove_reference<ItRef>::type::cons_type
+            cons_type;
+            typedef typename
+                detail::remove_reference<cons_type>::type::car_type
+            car_type;
+
+            typedef typename
+                detail::forward_as<cons_type,car_type>::type
+            type;
 
-                typedef typename
-                    detail::result_of_forward_as<cons_type,car_type>::type
-                type;
-
-                static type
-                call(ItRef it)
-                {
-                    return it.cons->car;
-                }
-            };
+            static type
+            call(ItRef it)
+            {
+                return it.cons->car;
+            }
         };
-    }
-}}
+    };
+}}}
 
 #endif
Modified: sandbox/SOC/2009/fusion/boost/fusion/container/list/detail/cons/empty_impl.hpp
==============================================================================
--- sandbox/SOC/2009/fusion/boost/fusion/container/list/detail/cons/empty_impl.hpp	(original)
+++ sandbox/SOC/2009/fusion/boost/fusion/container/list/detail/cons/empty_impl.hpp	2009-07-10 18:07:00 EDT (Fri, 10 Jul 2009)
@@ -10,29 +10,19 @@
 
 #include <boost/type_traits/is_same.hpp>
 
-namespace boost { namespace fusion
+namespace boost { namespace fusion { namespace extension
 {
-    struct cons_tag;
+    template <typename Tag>
+    struct empty_impl;
 
-    struct nil;
-
-    template <typename Car, typename Cdr>
-    struct cons;
-
-    namespace extension
+    template <>
+    struct empty_impl<cons_tag>
     {
-        template <typename Tag>
-        struct empty_impl;
-
-        template <>
-        struct empty_impl<cons_tag>
-        {
-            template <typename Seq>
-            struct apply
-              : boost::is_same<typename detail::identity<Seq>::type, nil>
-            {};
-        };
-    }
-}}
+        template <typename Seq>
+        struct apply
+          : boost::is_same<typename detail::identity<Seq>::type, nil>
+        {};
+    };
+}}}
 
 #endif
Modified: sandbox/SOC/2009/fusion/boost/fusion/container/list/detail/cons/end_impl.hpp
==============================================================================
--- sandbox/SOC/2009/fusion/boost/fusion/container/list/detail/cons/end_impl.hpp	(original)
+++ sandbox/SOC/2009/fusion/boost/fusion/container/list/detail/cons/end_impl.hpp	2009-07-10 18:07:00 EDT (Fri, 10 Jul 2009)
@@ -9,43 +9,28 @@
 #ifndef BOOST_FUSION_CONTAINER_LIST_DETAIL_CONS_END_IMPL_HPP
 #define BOOST_FUSION_CONTAINER_LIST_DETAIL_CONS_END_IMPL_HPP
 
-namespace boost { namespace fusion
+namespace boost { namespace fusion { namespace extension
 {
-    struct nil;
+    template <typename Tag>
+    struct end_impl;
 
-    struct cons_tag;
-
-    template <typename Car, typename Cdr>
-    struct cons;
-
-    template <typename Cons>
-    struct cons_iterator;
-
-    namespace extension
+    template <>
+    struct end_impl<cons_tag>
     {
-        template <typename Tag>
-        struct end_impl;
-
-        template <>
-        struct end_impl<cons_tag>
+        template <typename Seq>
+        struct apply
         {
-            template <typename Seq>
-            struct apply
-            {
-                typedef
-                    cons_iterator<
-                        typename detail::result_of_forward_as<Seq,nil>::type
-                    >
-                type;
+            typedef
+                cons_iterator<typename detail::forward_as<Seq,nil>::type>
+            type;
 
-                static type
-                call(Seq)
-                {
-                    return type();
-                }
-            };
+            static type
+            call(Seq)
+            {
+                return type();
+            }
         };
-    }
-}}
+    };
+}}}
 
 #endif
Modified: sandbox/SOC/2009/fusion/boost/fusion/container/list/detail/cons/equal_to_impl.hpp
==============================================================================
--- sandbox/SOC/2009/fusion/boost/fusion/container/list/detail/cons/equal_to_impl.hpp	(original)
+++ sandbox/SOC/2009/fusion/boost/fusion/container/list/detail/cons/equal_to_impl.hpp	2009-07-10 18:07:00 EDT (Fri, 10 Jul 2009)
@@ -8,36 +8,31 @@
 #ifndef BOOST_FUSION_CONTAINER_LIST_DETAIL_CONS_EQUAL_TO_IMPL_HPP
 #define BOOST_FUSION_CONTAINER_LIST_DETAIL_CONS_EQUAL_TO_IMPL_HPP
 
-namespace boost { namespace fusion
+namespace boost { namespace fusion { namespace extension
 {
-    struct cons_iterator_tag;
+    template <typename Tag>
+    struct equal_to_impl;
 
-    namespace extension
+    template <>
+    struct equal_to_impl<cons_iterator_tag>
     {
-        template <typename Tag>
-        struct equal_to_impl;
-
-        template <>
-        struct equal_to_impl<cons_iterator_tag>
+        template <typename It1Ref, typename It2Ref>
+        struct apply
+          : is_same<
+                typename detail::identity<
+                    typename detail::remove_reference<
+                        It1Ref
+                    >::type::cons_type
+                >::type
+              , typename detail::identity<
+                    typename detail::remove_reference<
+                        It2Ref
+                    >::type::cons_type
+                >::type
+            >
         {
-            template <typename It1Ref, typename It2Ref>
-            struct apply
-              : is_same<
-                    typename detail::identity<
-                        typename detail::remove_reference<
-                            It1Ref
-                        >::type::cons_type
-                    >::type
-                  , typename detail::identity<
-                        typename detail::remove_reference<
-                            It2Ref
-                        >::type::cons_type
-                    >::type
-                >
-            {
-            };
         };
-    }
-}}
+    };
+}}}
 
 #endif
Modified: sandbox/SOC/2009/fusion/boost/fusion/container/list/detail/cons/next_impl.hpp
==============================================================================
--- sandbox/SOC/2009/fusion/boost/fusion/container/list/detail/cons/next_impl.hpp	(original)
+++ sandbox/SOC/2009/fusion/boost/fusion/container/list/detail/cons/next_impl.hpp	2009-07-10 18:07:00 EDT (Fri, 10 Jul 2009)
@@ -9,48 +9,37 @@
 #ifndef BOOST_FUSION_CONTAINER_LIST_DETAIL_CONS_NEXT_IMPL_HPP
 #define BOOST_FUSION_CONTAINER_LIST_DETAIL_CONS_NEXT_IMPL_HPP
 
-namespace boost { namespace fusion
+namespace boost { namespace fusion { namespace extension
 {
-    struct cons_iterator_tag;
+    template <typename Tag>
+    struct next_impl;
 
-    template <typename Cons>
-    struct cons_iterator;
-
-    namespace extension
+    template <>
+    struct next_impl<cons_iterator_tag>
     {
-        template <typename Tag>
-        struct next_impl;
-
-        template <>
-        struct next_impl<cons_iterator_tag>
+        template <typename It>
+        struct apply
         {
-            template <typename It>
-            struct apply
-            {
-                typedef typename
-                    detail::remove_reference<It>::type::cons_type
-                cons_type;
-                typedef typename
-                    detail::remove_reference<cons_type>::type::cdr_type
-                cdr_type;
+            typedef typename
+                detail::remove_reference<It>::type::cons_type
+            cons_type;
+            typedef typename
+                detail::remove_reference<cons_type>::type::cdr_type
+            cdr_type;
+
+            typedef
+                cons_iterator<
+                    typename detail::forward_as<cons_type, cdr_type>::type
+                >
+            type;
 
-                typedef
-                    cons_iterator<
-                        typename detail::result_of_forward_as<
-                            cons_type
-                          , cdr_type
-                        >::type
-                    >
-                type;
-
-                static type
-                call(It it)
-                {
-                    return type(it.cons->cdr,0);
-                }
-            };
+            static type
+            call(It it)
+            {
+                return type(it.cons->cdr,0);
+            }
         };
-    }
-}}
+    };
+}}}
 
 #endif
Modified: sandbox/SOC/2009/fusion/boost/fusion/container/list/detail/cons/value_at_impl.hpp
==============================================================================
--- sandbox/SOC/2009/fusion/boost/fusion/container/list/detail/cons/value_at_impl.hpp	(original)
+++ sandbox/SOC/2009/fusion/boost/fusion/container/list/detail/cons/value_at_impl.hpp	2009-07-10 18:07:00 EDT (Fri, 10 Jul 2009)
@@ -10,39 +10,34 @@
 
 #include <boost/mpl/eval_if.hpp>
 
-namespace boost { namespace fusion
+namespace boost { namespace fusion { namespace extension
 {
-    struct cons_tag;
+    template <typename Tag>
+    struct value_at_impl;
 
-    namespace extension
+    template <>
+    struct value_at_impl<cons_tag>
     {
-        template <typename Tag>
-        struct value_at_impl;
-
-        template <>
-        struct value_at_impl<cons_tag>
+        template <typename Seq, typename N>
+        struct apply
         {
-            template <typename Seq, typename N>
-            struct apply
-            {
-                typedef typename
-                    detail::remove_reference<Seq>::type
-                identity_sequence;
-
-                typedef typename
-                    mpl::eval_if<
-                        N
-                      , mpl::identity<typename identity_sequence::car_type>
-                        //cschmidt: qualifiers could be moved here, though
-                        //this is not necessary!
-                      , apply<typename identity_sequence::cdr_type
-                            , mpl::int_<N::value-1>
-                        >
-                    >::type
-                type;
-            };
+            typedef typename
+                detail::remove_reference<Seq>::type
+            identity_sequence;
+
+            typedef typename
+                mpl::eval_if<
+                    N
+                  , mpl::identity<typename identity_sequence::car_type>
+                    //cschmidt: qualifiers could be moved here, though
+                    //this is not necessary!
+                  , apply<typename identity_sequence::cdr_type
+                        , mpl::int_<N::value-1>
+                    >
+                >::type
+            type;
         };
-    }
-}}
+    };
+}}}
 
 #endif
Modified: sandbox/SOC/2009/fusion/boost/fusion/container/list/detail/cons/value_of_impl.hpp
==============================================================================
--- sandbox/SOC/2009/fusion/boost/fusion/container/list/detail/cons/value_of_impl.hpp	(original)
+++ sandbox/SOC/2009/fusion/boost/fusion/container/list/detail/cons/value_of_impl.hpp	2009-07-10 18:07:00 EDT (Fri, 10 Jul 2009)
@@ -9,32 +9,26 @@
 #ifndef BOOST_FUSION_CONTAINER_LIST_DETAIL_CONS_VALUE_OF_IMPL_HPP
 #define BOOST_FUSION_CONTAINER_LIST_DETAIL_CONS_VALUE_OF_IMPL_HPP
 
-namespace boost { namespace fusion
+namespace boost { namespace fusion { namespace extension
 {
-    struct cons_iterator_tag;
+    template <typename Tag>
+    struct value_of_impl;
 
-    namespace extension
+    template <>
+    struct value_of_impl<cons_iterator_tag>
     {
-        template <typename Tag>
-        struct value_of_impl;
-
-        template <>
-        struct value_of_impl<cons_iterator_tag>
+        template <typename ItRef>
+        struct apply
         {
-            template <typename ItRef>
-            struct apply
-            {
-                typedef typename
-                    detail::remove_reference<ItRef>::type::cons_type
-                cons_type;
-
-                typedef typename
-                    detail::remove_reference<cons_type>::type::car_type
-                type;
-            };
+            typedef typename
+                detail::remove_reference<ItRef>::type::cons_type
+            cons_type;
+
+            typedef typename
+                detail::remove_reference<cons_type>::type::car_type
+            type;
         };
-    }
-
-}}
+    };
+}}}
 
 #endif
Modified: sandbox/SOC/2009/fusion/boost/fusion/container/list/detail/list/at_impl.hpp
==============================================================================
--- sandbox/SOC/2009/fusion/boost/fusion/container/list/detail/list/at_impl.hpp	(original)
+++ sandbox/SOC/2009/fusion/boost/fusion/container/list/detail/list/at_impl.hpp	2009-07-10 18:07:00 EDT (Fri, 10 Jul 2009)
@@ -8,40 +8,36 @@
 
 #include <boost/fusion/sequence/intrinsic/at.hpp>
 
-namespace boost { namespace fusion
+namespace boost { namespace fusion { namespace extension
 {
-    struct list_tag;
+    template <typename Tag>
+    struct at_impl;
 
-    namespace extension
+    template <>
+    struct at_impl<list_tag>
     {
-        template <typename Tag>
-        struct at_impl;
-
-        template <>
-        struct at_impl<list_tag>
+        template <typename SeqRef, typename N>
+        struct apply
         {
-            template <typename SeqRef, typename N>
-            struct apply
-            {
-                typedef typename
-                    detail::result_of_forward_as<
+            typedef typename
+                result_of::at<
+                    typename detail::forward_as<
                         SeqRef
-                      , typename detail::remove_reference<SeqRef>::type::storage_type
-                   >::type
-                storage_type;
+                      , typename detail::remove_reference<
+                            SeqRef
+                        >::type::storage_type
+                    >::type
+                  , N
+                >::type
+            type;
 
-                typedef typename
-                    result_of::at<storage_type,N>::type
-                type;
-
-                static type
-                call(SeqRef seq)
-                {
-                    return fusion::at<N>(seq.get_data());
-                }
-            };
+            static type
+            call(SeqRef seq)
+            {
+                return fusion::at<N>(seq.get_data());
+            }
         };
-    }
-}}
+    };
+}}}
 
 #endif
Modified: sandbox/SOC/2009/fusion/boost/fusion/container/list/detail/list/begin_impl.hpp
==============================================================================
--- sandbox/SOC/2009/fusion/boost/fusion/container/list/detail/list/begin_impl.hpp	(original)
+++ sandbox/SOC/2009/fusion/boost/fusion/container/list/detail/list/begin_impl.hpp	2009-07-10 18:07:00 EDT (Fri, 10 Jul 2009)
@@ -12,42 +12,38 @@
 #include <boost/fusion/support/iterator_adapter.hpp>
 #include <boost/fusion/sequence/intrinsic/begin.hpp>
 
-namespace boost { namespace fusion
+namespace boost { namespace fusion { namespace extension
 {
-    struct list_tag;
+    template <typename Tag>
+    struct begin_impl;
 
-    namespace extension
+    template <>
+    struct begin_impl<list_tag>
     {
-        template <typename Tag>
-        struct begin_impl;
-
-        template <>
-        struct begin_impl<list_tag>
+        template <typename SeqRef>
+        struct apply
         {
-            template <typename SeqRef>
-            struct apply
-            {
-                typedef typename
-                    detail::result_of_forward_as<SeqRef
-                      , typename detail::remove_reference<SeqRef>::type::storage_type
+            typedef
+                iterator_adapter<
+                    typename result_of::begin<
+                        typename detail::forward_as<
+                            SeqRef
+                          , typename detail::remove_reference<
+                                SeqRef
+                            >::type::storage_type
+                        >::type
                     >::type
-                storage_type;
+                  , forward_traversal_tag
+                >
+            type;
 
-                typedef
-                    iterator_adapter<
-                        typename result_of::begin<storage_type>::type
-                      , forward_traversal_tag
-                    >
-                type;
-
-                static type
-                call(SeqRef seq)
-                {
-                    return type(fusion::begin(seq.get_data()),0);
-                }
-            };
+            static type
+            call(SeqRef seq)
+            {
+                return type(fusion::begin(seq.get_data()),0);
+            }
         };
-    }
-}}
+    };
+}}}
 
 #endif
Modified: sandbox/SOC/2009/fusion/boost/fusion/container/list/detail/list/convert_impl.hpp
==============================================================================
--- sandbox/SOC/2009/fusion/boost/fusion/container/list/detail/list/convert_impl.hpp	(original)
+++ sandbox/SOC/2009/fusion/boost/fusion/container/list/detail/list/convert_impl.hpp	2009-07-10 18:07:00 EDT (Fri, 10 Jul 2009)
@@ -14,46 +14,41 @@
 #   include <boost/fusion/container/list/detail/list/variadic_templates/as_list_impl.hpp>
 #endif
 
-namespace boost { namespace fusion
+namespace boost { namespace fusion { namespace extension
 {
-    struct list_tag;
+    template <typename T>
+    struct convert_impl;
 
-    namespace extension
+    template <>
+    struct convert_impl<list_tag>
     {
-        template <typename T>
-        struct convert_impl;
-
-        template <>
-        struct convert_impl<list_tag>
+        template <typename SeqRef>
+        struct apply
         {
-            template <typename SeqRef>
-            struct apply
-            {
 #ifdef BOOST_NO_VARIADIC_TEMPLATES
-                typedef typename
-                    detail::as_list<result_of::size<Seq>::value>
-                gen;
-                typedef typename gen::template apply<
-                    typename result_of::begin<Seq>::type>::type
-                type;
+            typedef typename
+                detail::as_list<result_of::size<Seq>::value>
+            gen;
+            typedef typename gen::template apply<
+                typename result_of::begin<Seq>::type>::type
+            type;
 
-                static type call(SeqRef seq)
-                {
-                    return gen::call(
-                        fusion::begin(BOOST_FUSION_FORWARD(SeqRef,seq)));
-                }
+            static type call(SeqRef seq)
+            {
+                return gen::call(
+                    fusion::begin(BOOST_FUSION_FORWARD(SeqRef,seq)));
+            }
 #else
-                typedef typename detail::as_list_impl<SeqRef> gen;
-                typedef typename gen::apply::type type;
+            typedef typename detail::as_list_impl<SeqRef> gen;
+            typedef typename gen::apply::type type;
 
-                static type call(SeqRef seq)
-                {
-                    return gen::call(seq);
-                }
+            static type call(SeqRef seq)
+            {
+                return gen::call(seq);
+            }
 #endif
-            };
         };
-    }
-}}
+    };
+}}}
 
 #endif
Modified: sandbox/SOC/2009/fusion/boost/fusion/container/list/detail/list/end_impl.hpp
==============================================================================
--- sandbox/SOC/2009/fusion/boost/fusion/container/list/detail/list/end_impl.hpp	(original)
+++ sandbox/SOC/2009/fusion/boost/fusion/container/list/detail/list/end_impl.hpp	2009-07-10 18:07:00 EDT (Fri, 10 Jul 2009)
@@ -12,42 +12,38 @@
 #include <boost/fusion/support/iterator_adapter.hpp>
 #include <boost/fusion/sequence/intrinsic/end.hpp>
 
-namespace boost { namespace fusion
+namespace boost { namespace fusion { namespace extension
 {
-    struct list_tag;
+    template <typename Tag>
+    struct end_impl;
 
-    namespace extension
+    template <>
+    struct end_impl<list_tag>
     {
-        template <typename Tag>
-        struct end_impl;
-
-        template <>
-        struct end_impl<list_tag>
+        template <typename SeqRef>
+        struct apply
         {
-            template <typename SeqRef>
-            struct apply
-            {
-                typedef typename
-                    detail::result_of_forward_as<SeqRef
-                      , typename detail::remove_reference<SeqRef>::type::storage_type
+            typedef
+                iterator_adapter<
+                    typename result_of::end<
+                        typename detail::forward_as<
+                            SeqRef
+                          , typename detail::remove_reference<
+                                SeqRef
+                            >::type::storage_type
+                        >::type
                     >::type
-                storage_type;
+                  , forward_traversal_tag
+                >
+            type;
 
-                typedef
-                    iterator_adapter<
-                        typename result_of::end<storage_type>::type
-                      , forward_traversal_tag
-                    >
-                type;
-
-                static type
-                call(SeqRef seq)
-                {
-                    return type(fusion::end(seq.get_data()),0);
-                }
-            };
+            static type
+            call(SeqRef seq)
+            {
+                return type(fusion::end(seq.get_data()),0);
+            }
         };
-    }
-}}
+    };
+}}}
 
 #endif
Modified: sandbox/SOC/2009/fusion/boost/fusion/container/list/detail/list/value_at_impl.hpp
==============================================================================
--- sandbox/SOC/2009/fusion/boost/fusion/container/list/detail/list/value_at_impl.hpp	(original)
+++ sandbox/SOC/2009/fusion/boost/fusion/container/list/detail/list/value_at_impl.hpp	2009-07-10 18:07:00 EDT (Fri, 10 Jul 2009)
@@ -8,34 +8,29 @@
 
 #include <boost/fusion/sequence/intrinsic/value_at.hpp>
 
-namespace boost { namespace fusion
+namespace boost { namespace fusion { namespace extension
 {
-    struct list_tag;
+    template <typename Tag>
+    struct value_at_impl;
 
-    namespace extension
+    template <>
+    struct value_at_impl<list_tag>
     {
-        template <typename Tag>
-        struct value_at_impl;
-
-        template <>
-        struct value_at_impl<list_tag>
+        template <typename SeqRef, typename N>
+        struct apply
         {
-            template <typename SeqRef, typename N>
-            struct apply
-            {
-                typedef typename
-                    detail::result_of_forward_as<
-                        SeqRef
-                      , typename detail::remove_reference<SeqRef>::type::storage_type
-                   >::type
-                storage_type;
-
-                typedef typename
-                    result_of::value_at<storage_type,N>::type
-                type;
-            };
+            typedef typename
+                detail::forward_as<
+                    SeqRef
+                  , typename detail::remove_reference<SeqRef>::type::storage_type
+               >::type
+            storage_type;
+
+            typedef typename
+                result_of::value_at<storage_type,N>::type
+            type;
         };
-    }
-}}
+    };
+}}}
 
 #endif
Modified: sandbox/SOC/2009/fusion/boost/fusion/container/list/list.hpp
==============================================================================
--- sandbox/SOC/2009/fusion/boost/fusion/container/list/list.hpp	(original)
+++ sandbox/SOC/2009/fusion/boost/fusion/container/list/list.hpp	2009-07-10 18:07:00 EDT (Fri, 10 Jul 2009)
@@ -21,7 +21,6 @@
 
 namespace boost { namespace fusion
 {
-    struct list_tag;
     struct fusion_sequence_tag;
 #ifndef BOOST_NO_VARIADIC_TEMPLATES
     struct void_;
Modified: sandbox/SOC/2009/fusion/boost/fusion/container/list/list_fwd.hpp
==============================================================================
--- sandbox/SOC/2009/fusion/boost/fusion/container/list/list_fwd.hpp	(original)
+++ sandbox/SOC/2009/fusion/boost/fusion/container/list/list_fwd.hpp	2009-07-10 18:07:00 EDT (Fri, 10 Jul 2009)
@@ -13,9 +13,10 @@
 
 namespace boost { namespace fusion
 {
+    struct list_tag;
+
     VARIADIC_TEMPLATE_WITH_DEFAULT(FUSION_MAX_LIST_SIZE)
     struct list;
 }}
 
-
 #endif
Modified: sandbox/SOC/2009/fusion/boost/fusion/container/map/convert.hpp
==============================================================================
--- sandbox/SOC/2009/fusion/boost/fusion/container/map/convert.hpp	(original)
+++ sandbox/SOC/2009/fusion/boost/fusion/container/map/convert.hpp	2009-07-10 18:07:00 EDT (Fri, 10 Jul 2009)
@@ -9,9 +9,10 @@
 #define BOOST_FUSION_CONTAINER_MAP_CONVERT_HPP
 
 #include <boost/fusion/container/map/map.hpp>
-#include <boost/fusion/container/map/detail/convert_impl.hpp>
 #include <boost/fusion/support/ref.hpp>
 
+#include <boost/fusion/container/map/detail/convert_impl.hpp>
+
 namespace boost { namespace fusion
 {
     namespace result_of
Modified: sandbox/SOC/2009/fusion/boost/fusion/container/map/detail/at_key_impl.hpp
==============================================================================
--- sandbox/SOC/2009/fusion/boost/fusion/container/map/detail/at_key_impl.hpp	(original)
+++ sandbox/SOC/2009/fusion/boost/fusion/container/map/detail/at_key_impl.hpp	2009-07-10 18:07:00 EDT (Fri, 10 Jul 2009)
@@ -8,38 +8,32 @@
 #ifndef BOOST_FUSION_CONTAINER_MAP_DETAIL_AT_KEY_IMPL_HPP
 #define BOOST_FUSION_CONTAINER_MAP_DETAIL_AT_KEY_IMPL_HPP
 
-namespace boost { namespace fusion
+namespace boost { namespace fusion { namespace extension
 {
-    struct map_tag;
+    template <typename Tag>
+    struct at_key_impl;
 
-    namespace extension
+    template <>
+    struct at_key_impl<map_tag>
     {
-        template <typename Tag>
-        struct at_key_impl;
-
-        template <>
-        struct at_key_impl<map_tag>
+        template <typename SeqRef, typename Key>
+        struct apply
         {
-            template <typename SeqRef, typename Key>
-            struct apply
-            {
-                typedef typename
-                    detail::remove_reference<SeqRef>::type::
+            typedef typename
+                detail::forward_as<
+                    SeqRef
+                  , typename detail::remove_reference<SeqRef>::type::
                         template meta_at_impl<Key>::type
-                element;
+                >::type
+            type;
 
-                typedef typename
-                    detail::result_of_forward_as<SeqRef,element>::type
-                type;
-
-                static type
-                call(SeqRef seq)
-                {
-                    return seq.at_impl(mpl::identity<Key>());
-                }
-            };
+            static type
+            call(SeqRef seq)
+            {
+                return seq.at_impl(mpl::identity<Key>());
+            }
         };
-    }
-}}
+    };
+}}}
 
 #endif
Modified: sandbox/SOC/2009/fusion/boost/fusion/container/map/detail/begin_impl.hpp
==============================================================================
--- sandbox/SOC/2009/fusion/boost/fusion/container/map/detail/begin_impl.hpp	(original)
+++ sandbox/SOC/2009/fusion/boost/fusion/container/map/detail/begin_impl.hpp	2009-07-10 18:07:00 EDT (Fri, 10 Jul 2009)
@@ -8,42 +8,35 @@
 
 #include <boost/fusion/sequence/intrinsic/begin.hpp>
 
-namespace boost { namespace fusion
+namespace boost { namespace fusion { namespace extension
 {
-    struct map_tag;
+    template <typename Tag>
+    struct begin_impl;
 
-    namespace extension
+    template <>
+    struct begin_impl<map_tag>
     {
-        template <typename Tag>
-        struct begin_impl;
-
-        template <>
-        struct begin_impl<map_tag>
+        template <typename SeqRef>
+        struct apply
         {
-            template <typename SeqRef>
-            struct apply
-            {
-                typedef typename
-                    detail::result_of_forward_as<
+            typedef typename
+                result_of::begin<
+                    typename detail::forward_as<
                         SeqRef
                       , typename detail::remove_reference<
                             SeqRef
                         >::type::storage_type
                     >::type
-                storage_type;
+                >::type
+            type;
 
-                typedef typename
-                    result_of::begin<storage_type>::type
-                type;
-
-                static type
-                call(SeqRef seq)
-                {
-                    return fusion::begin(seq.get_data());
-                }
-            };
+            static type
+            call(SeqRef seq)
+            {
+                return fusion::begin(seq.get_data());
+            }
         };
-    }
-}}
+    };
+}}}
 
 #endif
Modified: sandbox/SOC/2009/fusion/boost/fusion/container/map/detail/convert_impl.hpp
==============================================================================
--- sandbox/SOC/2009/fusion/boost/fusion/container/map/detail/convert_impl.hpp	(original)
+++ sandbox/SOC/2009/fusion/boost/fusion/container/map/detail/convert_impl.hpp	2009-07-10 18:07:00 EDT (Fri, 10 Jul 2009)
@@ -9,53 +9,48 @@
 #ifdef BOOST_NO_VARIADIC_TEMPLATES
 #   include <boost/fusion/sequence/intrinsic/begin.hpp>
 #   include <boost/fusion/sequence/intrinsic/size.hpp>
-#   include <boost/fusion/container/map/detail/pp/as_set.hpp>
+#   include <boost/fusion/container/map/detail/pp/as_map.hpp>
 #else
 #   include <boost/fusion/container/map/detail/variadic_templates/as_map_impl.hpp>
 #endif
 
-namespace boost { namespace fusion
+namespace boost { namespace fusion { namespace extension
 {
-    struct map_tag;
+    template <typename T>
+    struct convert_impl;
 
-    namespace extension
+    template <>
+    struct convert_impl<map_tag>
     {
-        template <typename T>
-        struct convert_impl;
-
-        template <>
-        struct convert_impl<map_tag>
+        template <typename SeqRef>
+        struct apply
         {
-            template <typename SeqRef>
-            struct apply
-            {
 #ifdef BOOST_NO_VARIADIC_TEMPLATES
-                typedef typename
-                    detail::as_map<result_of::size<SeqRef>::value>
-                gen;
-                typedef typename
-                    gen::template apply<
-                        typename result_of::begin<SeqRef>::type
-                    >::type
-                type;
+            typedef typename
+                detail::as_map<result_of::size<SeqRef>::value>
+            gen;
+            typedef typename
+                gen::template apply<
+                    typename result_of::begin<SeqRef>::type
+                >::type
+            type;
 
-                static type call(SeqRef seq)
-                {
-                    return gen::call(
-                            fusion::begin(BOOST_FUSION_FORWARD(Sequence,seq)));
-                }
+            static type call(SeqRef seq)
+            {
+                return gen::call(
+                        fusion::begin(BOOST_FUSION_FORWARD(Sequence,seq)));
+            }
 #else
-                typedef typename detail::as_map_impl<SeqRef> gen;
-                typedef typename gen::apply::type type;
+            typedef typename detail::as_map_impl<SeqRef> gen;
+            typedef typename gen::apply::type type;
 
-                static type call(SeqRef seq)
-                {
-                    return gen::call(seq);
-                }
+            static type call(SeqRef seq)
+            {
+                return gen::call(seq);
+            }
 #endif
-            };
         };
-    }
-}}
+    };
+}}}
 
 #endif
Modified: sandbox/SOC/2009/fusion/boost/fusion/container/map/detail/end_impl.hpp
==============================================================================
--- sandbox/SOC/2009/fusion/boost/fusion/container/map/detail/end_impl.hpp	(original)
+++ sandbox/SOC/2009/fusion/boost/fusion/container/map/detail/end_impl.hpp	2009-07-10 18:07:00 EDT (Fri, 10 Jul 2009)
@@ -8,42 +8,35 @@
 
 #include <boost/fusion/sequence/intrinsic/end.hpp>
 
-namespace boost { namespace fusion
+namespace boost { namespace fusion { namespace extension
 {
-    struct map_tag;
+    template <typename Tag>
+    struct end_impl;
 
-    namespace extension
+    template <>
+    struct end_impl<map_tag>
     {
-        template <typename Tag>
-        struct end_impl;
-
-        template <>
-        struct end_impl<map_tag>
+        template <typename SeqRef>
+        struct apply
         {
-            template <typename SeqRef>
-            struct apply
-            {
-                typedef typename
-                    detail::result_of_forward_as<
+            typedef typename
+                result_of::end<
+                    typename detail::forward_as<
                         SeqRef
                       , typename detail::remove_reference<
                             SeqRef
                         >::type::storage_type
                     >::type
-                storage_type;
+                >::type
+            type;
 
-                typedef typename
-                    result_of::end<storage_type>::type
-                type;
-
-                static type
-                call(SeqRef seq)
-                {
-                    return fusion::end(seq.get_data());
-                }
-            };
+            static type
+            call(SeqRef seq)
+            {
+                return fusion::end(seq.get_data());
+            }
         };
-    }
-}}
+    };
+}}}
 
 #endif
Modified: sandbox/SOC/2009/fusion/boost/fusion/container/map/detail/value_at_key_impl.hpp
==============================================================================
--- sandbox/SOC/2009/fusion/boost/fusion/container/map/detail/value_at_key_impl.hpp	(original)
+++ sandbox/SOC/2009/fusion/boost/fusion/container/map/detail/value_at_key_impl.hpp	2009-07-10 18:07:00 EDT (Fri, 10 Jul 2009)
@@ -9,28 +9,23 @@
 #ifndef BOOST_FUSION_CONTAINER_MAP_DETAIL_VALUE_AT_KEY_IMPL_HPP
 #define BOOST_FUSION_CONTAINER_MAP_DETAIL_VALUE_AT_KEY_IMPL_HPP
 
-namespace boost { namespace fusion
+namespace boost { namespace fusion { namespace extension
 {
-    struct map_tag;
+    template <typename Tag>
+    struct value_at_key_impl;
 
-    namespace extension
+    template <>
+    struct value_at_key_impl<map_tag>
     {
-        template <typename Tag>
-        struct value_at_key_impl;
-
-        template <>
-        struct value_at_key_impl<map_tag>
+        template <typename SeqRef, typename Key>
+        struct apply
         {
-            template <typename SeqRef, typename Key>
-            struct apply
-            {
-                typedef typename
-                    detail::remove_reference<SeqRef>::type::
-                        template meta_at_impl<Key>::type
-                type;
-            };
+            typedef typename
+                detail::remove_reference<SeqRef>::type::
+                    template meta_at_impl<Key>::type
+            type;
         };
-    }
-}}
+    };
+}}}
 
 #endif
Modified: sandbox/SOC/2009/fusion/boost/fusion/container/map/map.hpp
==============================================================================
--- sandbox/SOC/2009/fusion/boost/fusion/container/map/map.hpp	(original)
+++ sandbox/SOC/2009/fusion/boost/fusion/container/map/map.hpp	2009-07-10 18:07:00 EDT (Fri, 10 Jul 2009)
@@ -15,14 +15,6 @@
 #include <boost/fusion/support/sequence_base.hpp>
 #include <boost/fusion/support/ref.hpp>
 
-#ifdef BOOST_NO_VARIADIC_TEMPLATES
-#   include <boost/fusion/container/map/detail/lookup_key.hpp>
-#endif
-#include <boost/fusion/container/map/detail/begin_impl.hpp>
-#include <boost/fusion/container/map/detail/end_impl.hpp>
-#include <boost/fusion/container/map/detail/at_key_impl.hpp>
-#include <boost/fusion/container/map/detail/value_at_key_impl.hpp>
-
 #include <boost/mpl/identity.hpp>
 #include <boost/mpl/eval_if.hpp>
 #include <boost/mpl/if.hpp>
@@ -36,9 +28,16 @@
 #include <boost/type_traits/is_same.hpp>
 #include <boost/type_traits/add_const.hpp>
 
+#ifdef BOOST_NO_VARIADIC_TEMPLATES
+#   include <boost/fusion/container/map/detail/pp/lookup_key.hpp>
+#endif
+#include <boost/fusion/container/map/detail/begin_impl.hpp>
+#include <boost/fusion/container/map/detail/end_impl.hpp>
+#include <boost/fusion/container/map/detail/at_key_impl.hpp>
+#include <boost/fusion/container/map/detail/value_at_key_impl.hpp>
+
 namespace boost { namespace fusion
 {
-    struct map_tag;
     struct fusion_sequence_tag;
 #ifndef BOOST_NO_VARIADIC_TEMPLATES
     struct void_;
Modified: sandbox/SOC/2009/fusion/boost/fusion/container/map/map_fwd.hpp
==============================================================================
--- sandbox/SOC/2009/fusion/boost/fusion/container/map/map_fwd.hpp	(original)
+++ sandbox/SOC/2009/fusion/boost/fusion/container/map/map_fwd.hpp	2009-07-10 18:07:00 EDT (Fri, 10 Jul 2009)
@@ -13,6 +13,8 @@
 
 namespace boost { namespace fusion
 {
+    struct map_tag;
+
     VARIADIC_TEMPLATE_WITH_DEFAULT(FUSION_MAX_MAP_SIZE)
     struct map;
 }}
Modified: sandbox/SOC/2009/fusion/boost/fusion/container/set/convert.hpp
==============================================================================
--- sandbox/SOC/2009/fusion/boost/fusion/container/set/convert.hpp	(original)
+++ sandbox/SOC/2009/fusion/boost/fusion/container/set/convert.hpp	2009-07-10 18:07:00 EDT (Fri, 10 Jul 2009)
@@ -9,9 +9,10 @@
 #define BOOST_FUSION_CONTAINER_SET_CONVERT_HPP
 
 #include <boost/fusion/container/set/set.hpp>
-#include <boost/fusion/container/set/detail/convert_impl.hpp>
 #include <boost/fusion/support/ref.hpp>
 
+#include <boost/fusion/container/set/detail/convert_impl.hpp>
+
 namespace boost { namespace fusion
 {
     namespace result_of
Modified: sandbox/SOC/2009/fusion/boost/fusion/container/set/detail/at_key_impl.hpp
==============================================================================
--- sandbox/SOC/2009/fusion/boost/fusion/container/set/detail/at_key_impl.hpp	(original)
+++ sandbox/SOC/2009/fusion/boost/fusion/container/set/detail/at_key_impl.hpp	2009-07-10 18:07:00 EDT (Fri, 10 Jul 2009)
@@ -8,38 +8,32 @@
 #ifndef BOOST_FUSION_CONTAINER_SET_DETAIL_AT_KEY_IMPL_HPP
 #define BOOST_FUSION_CONTAINER_SET_DETAIL_AT_KEY_IMPL_HPP
 
-namespace boost { namespace fusion
+namespace boost { namespace fusion { namespace extension
 {
-    struct set_tag;
+    template <typename Tag>
+    struct at_key_impl;
 
-    namespace extension
+    template <>
+    struct at_key_impl<set_tag>
     {
-        template <typename Tag>
-        struct at_key_impl;
-
-        template <>
-        struct at_key_impl<set_tag>
+        template <typename SeqRef, typename Key>
+        struct apply
         {
-            template <typename SeqRef, typename Key>
-            struct apply
-            {
-                typedef typename
-                    detail::remove_reference<SeqRef>::type::
+            typedef typename
+                detail::forward_as<
+                    SeqRef
+                  , typename detail::remove_reference<SeqRef>::type::
                         template meta_at_impl<Key>::type
-                element;
+                >::type
+            type;
 
-                typedef typename
-                    detail::result_of_forward_as<SeqRef,element>::type
-                type;
-
-                static type
-                call(SeqRef seq)
-                {
-                    return seq.at_impl(mpl::identity<Key>());
-                }
-            };
+            static type
+            call(SeqRef seq)
+            {
+                return seq.at_impl(mpl::identity<Key>());
+            }
         };
-    }
-}}
+    };
+}}}
 
 #endif
Modified: sandbox/SOC/2009/fusion/boost/fusion/container/set/detail/begin_impl.hpp
==============================================================================
--- sandbox/SOC/2009/fusion/boost/fusion/container/set/detail/begin_impl.hpp	(original)
+++ sandbox/SOC/2009/fusion/boost/fusion/container/set/detail/begin_impl.hpp	2009-07-10 18:07:00 EDT (Fri, 10 Jul 2009)
@@ -8,41 +8,35 @@
 
 #include <boost/fusion/sequence/intrinsic/begin.hpp>
 
-namespace boost { namespace fusion
+namespace boost { namespace fusion { namespace extension
 {
-    struct set_tag;
+    template <typename Tag>
+    struct begin_impl;
 
-    namespace extension
+    template <>
+    struct begin_impl<set_tag>
     {
-        template <typename Tag>
-        struct begin_impl;
-
-        template <>
-        struct begin_impl<set_tag>
+        template <typename SeqRef>
+        struct apply
         {
-            template <typename SeqRef>
-            struct apply
-            {
-                typedef typename
-                    detail::result_of_forward_as<SeqRef
+            typedef typename
+                result_of::begin<
+                    typename detail::forward_as<
+                        SeqRef
                       , typename detail::remove_reference<
                             SeqRef
                         >::type::storage_type
                     >::type
-                storage_type;
+                >::type
+            type;
 
-                typedef typename
-                    result_of::begin<storage_type>::type
-                type;
-
-                static type
-                call(SeqRef seq)
-                {
-                    return fusion::begin(seq.get_data());
-                }
-            };
+            static type
+            call(SeqRef seq)
+            {
+                return fusion::begin(seq.get_data());
+            }
         };
-    }
-}}
+    };
+}}}
 
 #endif
Modified: sandbox/SOC/2009/fusion/boost/fusion/container/set/detail/convert_impl.hpp
==============================================================================
--- sandbox/SOC/2009/fusion/boost/fusion/container/set/detail/convert_impl.hpp	(original)
+++ sandbox/SOC/2009/fusion/boost/fusion/container/set/detail/convert_impl.hpp	2009-07-10 18:07:00 EDT (Fri, 10 Jul 2009)
@@ -14,47 +14,42 @@
 #   include <boost/fusion/container/set/detail/variadic_templates/as_set_impl.hpp>
 #endif
 
-namespace boost { namespace fusion
+namespace boost { namespace fusion { namespace extension
 {
-    struct set_tag;
+    template <typename T>
+    struct convert_impl;
 
-    namespace extension
+    template <>
+    struct convert_impl<set_tag>
     {
-        template <typename T>
-        struct convert_impl;
-
-        template <>
-        struct convert_impl<set_tag>
+        template <typename SeqRef>
+        struct apply
         {
-            template <typename SeqRef>
-            struct apply
-            {
 #ifdef BOOST_NO_VARIADIC_TEMPLATES
-                typedef typename
-                    detail::as_set<result_of::size<SeqRef>::value>
-                gen;
-                typedef typename gen::template apply<
-                    typename result_of::begin<SeqRef>::type>::type
-                type;
-
-                static type call(SeqRef seq)
-                {
-                    return gen::call(
-                            fusion::begin(BOOST_FUSION_FORWARD(Sequence,seq)));
-                }
+            typedef typename
+                detail::as_set<result_of::size<SeqRef>::value>
+            gen;
+            typedef typename gen::template apply<
+                typename result_of::begin<SeqRef>::type>::type
+            type;
+
+            static type call(SeqRef seq)
+            {
+                return gen::call(
+                        fusion::begin(BOOST_FUSION_FORWARD(Sequence,seq)));
+            }
 #else
-                typedef typename detail::as_set_impl<SeqRef> gen;
+            typedef typename detail::as_set_impl<SeqRef> gen;
 
-                typedef typename gen::apply::type type;
+            typedef typename gen::apply::type type;
 
-                static type call(SeqRef seq)
-                {
-                    return gen::call(seq);
-                }
+            static type call(SeqRef seq)
+            {
+                return gen::call(seq);
+            }
 #endif
-            };
         };
-    }
-}}
+    };
+}}}
 
 #endif
Modified: sandbox/SOC/2009/fusion/boost/fusion/container/set/detail/end_impl.hpp
==============================================================================
--- sandbox/SOC/2009/fusion/boost/fusion/container/set/detail/end_impl.hpp	(original)
+++ sandbox/SOC/2009/fusion/boost/fusion/container/set/detail/end_impl.hpp	2009-07-10 18:07:00 EDT (Fri, 10 Jul 2009)
@@ -8,42 +8,35 @@
 
 #include <boost/fusion/sequence/intrinsic/end.hpp>
 
-namespace boost { namespace fusion
+namespace boost { namespace fusion { namespace extension
 {
-    struct set_tag;
+    template <typename Tag>
+    struct end_impl;
 
-    namespace extension
+    template <>
+    struct end_impl<set_tag>
     {
-        template <typename Tag>
-        struct end_impl;
-
-        template <>
-        struct end_impl<set_tag>
+        template <typename SeqRef>
+        struct apply
         {
-            template <typename SeqRef>
-            struct apply
-            {
-                typedef typename
-                    detail::result_of_forward_as<
+            typedef typename
+                result_of::end<
+                    typename detail::forward_as<
                         SeqRef
                       , typename detail::remove_reference<
                             SeqRef
                         >::type::storage_type
                     >::type
-                storage_type;
+                >::type
+            type;
 
-                typedef typename
-                    result_of::end<storage_type>::type
-                type;
-
-                static type
-                call(SeqRef seq)
-                {
-                    return fusion::end(seq.get_data());
-                }
-            };
+            static type
+            call(SeqRef seq)
+            {
+                return fusion::end(seq.get_data());
+            }
         };
-    }
-}}
+    };
+}}}
 
 #endif
Modified: sandbox/SOC/2009/fusion/boost/fusion/container/set/detail/value_at_key_impl.hpp
==============================================================================
--- sandbox/SOC/2009/fusion/boost/fusion/container/set/detail/value_at_key_impl.hpp	(original)
+++ sandbox/SOC/2009/fusion/boost/fusion/container/set/detail/value_at_key_impl.hpp	2009-07-10 18:07:00 EDT (Fri, 10 Jul 2009)
@@ -9,28 +9,23 @@
 #ifndef BOOST_FUSION_CONTAINER_SET_DETAIL_VALUE_AT_KEY_IMPL_HPP
 #define BOOST_FUSION_CONTAINER_SET_DETAIL_VALUE_AT_KEY_IMPL_HPP
 
-namespace boost { namespace fusion
+namespace boost { namespace fusion { namespace extension
 {
-    struct set_tag;
+    template <typename Tag>
+    struct value_at_key_impl;
 
-    namespace extension
+    template <>
+    struct value_at_key_impl<set_tag>
     {
-        template <typename Tag>
-        struct value_at_key_impl;
-
-        template <>
-        struct value_at_key_impl<set_tag>
+        template <typename SeqRef, typename Key>
+        struct apply
         {
-            template <typename SeqRef, typename Key>
-            struct apply
-            {
-                typedef typename
-                    detail::remove_reference<SeqRef>::type::
-                        template meta_at_impl<Key>::type
-                type;
-            };
+            typedef typename
+                detail::remove_reference<SeqRef>::type::
+                    template meta_at_impl<Key>::type
+            type;
         };
-    }
-}}
+    };
+}}}
 
 #endif
Modified: sandbox/SOC/2009/fusion/boost/fusion/container/set/set.hpp
==============================================================================
--- sandbox/SOC/2009/fusion/boost/fusion/container/set/set.hpp	(original)
+++ sandbox/SOC/2009/fusion/boost/fusion/container/set/set.hpp	2009-07-10 18:07:00 EDT (Fri, 10 Jul 2009)
@@ -14,6 +14,14 @@
 #include <boost/fusion/support/sequence_base.hpp>
 #include <boost/fusion/support/ref.hpp>
 
+#include <boost/mpl/if.hpp>
+#include <boost/mpl/contains.hpp>
+#include <boost/mpl/find.hpp>
+#include <boost/mpl/distance.hpp>
+#include <boost/mpl/begin.hpp>
+#include <boost/mpl/bool.hpp>
+#include <boost/mpl/identity.hpp>
+
 #ifdef BOOST_NO_VARIADIC_TEMPLATES
 #   include <boost/fusion/container/set/detail/pp/lookup_key.hpp>
 #endif
@@ -22,17 +30,9 @@
 #include <boost/fusion/container/set/detail/at_key_impl.hpp>
 #include <boost/fusion/container/set/detail/value_at_key_impl.hpp>
 
-#include <boost/mpl/if.hpp>
-#include <boost/mpl/contains.hpp>
-#include <boost/mpl/find.hpp>
-#include <boost/mpl/distance.hpp>
-#include <boost/mpl/begin.hpp>
-#include <boost/mpl/bool.hpp>
-#include <boost/mpl/identity.hpp>
 
 namespace boost { namespace fusion
 {
-    struct set_tag;
     struct fusion_sequence_tag;
 #ifndef BOOST_NO_VARIADIC_TEMPLATES
     struct void_;
Modified: sandbox/SOC/2009/fusion/boost/fusion/container/set/set_fwd.hpp
==============================================================================
--- sandbox/SOC/2009/fusion/boost/fusion/container/set/set_fwd.hpp	(original)
+++ sandbox/SOC/2009/fusion/boost/fusion/container/set/set_fwd.hpp	2009-07-10 18:07:00 EDT (Fri, 10 Jul 2009)
@@ -13,6 +13,8 @@
 
 namespace boost { namespace fusion
 {
+    struct set_tag;
+
     VARIADIC_TEMPLATE_WITH_DEFAULT(FUSION_MAX_SET_SIZE)
     struct set;
 }}
Modified: sandbox/SOC/2009/fusion/boost/fusion/container/vector/detail/advance_impl.hpp
==============================================================================
--- sandbox/SOC/2009/fusion/boost/fusion/container/vector/detail/advance_impl.hpp	(original)
+++ sandbox/SOC/2009/fusion/boost/fusion/container/vector/detail/advance_impl.hpp	2009-07-10 18:07:00 EDT (Fri, 10 Jul 2009)
@@ -8,42 +8,32 @@
 #ifndef BOOST_FUSION_CONTAINER_VECTOR_DETAIL_ADVANCE_IMPL_HPP
 #define BOOST_FUSION_CONTAINER_VECTOR_DETAIL_ADVANCE_IMPL_HPP
 
-namespace boost { namespace fusion
+namespace boost { namespace fusion { namespace extension
 {
-    struct vector_iterator_tag;
-    template <typename Vector, int N>
-    struct vector_iterator;
+    template <typename Tag>
+    struct advance_impl;
 
-    namespace extension
+    template <>
+    struct advance_impl<vector_iterator_tag>
     {
-        template <typename Tag>
-        struct advance_impl;
-
-        template <>
-        struct advance_impl<vector_iterator_tag>
+        template <typename ItRef, typename N>
+        struct apply
         {
-            template <typename ItRef, typename N>
-            struct apply
-            {
-                typedef typename
-                    detail::remove_reference<ItRef>::type
-                it;
+            typedef typename
+                detail::remove_reference<ItRef>::type
+            it;
+
+            typedef
+                vector_iterator<typename it::vector, it::index::value+N::value>
+            type;
 
-                typedef
-                    vector_iterator<
-                        typename it::vector
-                      , it::index::value+N::value
-                    >
-                type;
-
-                static type
-                call(ItRef it)
-                {
-                    return type(*it.vec,0);
-                }
-            };
+            static type
+            call(ItRef it)
+            {
+                return type(*it.vec,0);
+            }
         };
-    }
-}}
+    };
+}}}
 
 #endif
Modified: sandbox/SOC/2009/fusion/boost/fusion/container/vector/detail/at_impl.hpp
==============================================================================
--- sandbox/SOC/2009/fusion/boost/fusion/container/vector/detail/at_impl.hpp	(original)
+++ sandbox/SOC/2009/fusion/boost/fusion/container/vector/detail/at_impl.hpp	2009-07-10 18:07:00 EDT (Fri, 10 Jul 2009)
@@ -11,40 +11,36 @@
 #include <boost/mpl/at.hpp>
 #include <boost/mpl/eval_if.hpp>
 
-namespace boost { namespace fusion
+namespace boost { namespace fusion { namespace extension
 {
-    struct vector_tag;
+    template <typename Tag>
+    struct at_impl;
 
-    namespace extension
+    template <>
+    struct at_impl<vector_tag>
     {
-        template <typename Tag>
-        struct at_impl;
-
-        template <>
-        struct at_impl<vector_tag>
+        template <typename SeqRef, typename N>
+        struct apply
         {
-            template <typename SeqRef, typename N>
-            struct apply
-            {
-                typedef typename
-                    mpl::at<
-                        typename detail::remove_reference<SeqRef>::type::types
+            typedef typename
+                detail::forward_as<
+                    SeqRef
+                  , typename mpl::at<
+                        typename detail::remove_reference<
+                            SeqRef
+                        >::type::types
                       , N
                     >::type
-                element;
+                >::type
+            type;
 
-                typedef typename
-                    detail::result_of_forward_as<SeqRef,element>::type
-                type;
-
-                static type
-                call(SeqRef seq)
-                {
-                    return seq.at_impl(N());
-                }
-            };
+            static type
+            call(SeqRef seq)
+            {
+                return seq.at_impl(N());
+            }
         };
-    }
-}}
+    };
+}}}
 
 #endif
Modified: sandbox/SOC/2009/fusion/boost/fusion/container/vector/detail/begin_impl.hpp
==============================================================================
--- sandbox/SOC/2009/fusion/boost/fusion/container/vector/detail/begin_impl.hpp	(original)
+++ sandbox/SOC/2009/fusion/boost/fusion/container/vector/detail/begin_impl.hpp	2009-07-10 18:07:00 EDT (Fri, 10 Jul 2009)
@@ -8,29 +8,26 @@
 #ifndef BOOST_FUSION_CONTAINER_VECTOR_DETAIL_BEGIN_IMPL_HPP
 #define BOOST_FUSION_CONTAINER_VECTOR_DETAIL_BEGIN_IMPL_HPP
 
-namespace boost { namespace fusion
+namespace boost { namespace fusion { namespace extension
 {
-    namespace extension
-    {
-        template <typename Tag>
-        struct begin_impl;
+    template <typename Tag>
+    struct begin_impl;
 
-        template <>
-        struct begin_impl<vector_tag>
+    template <>
+    struct begin_impl<vector_tag>
+    {
+        template <typename SeqRef>
+        struct apply
         {
-            template <typename SeqRef>
-            struct apply
-            {
-                typedef vector_iterator<SeqRef, 0> type;
+            typedef vector_iterator<SeqRef, 0> type;
 
-                static type
-                call(SeqRef seq)
-                {
-                    return type(seq,0);
-                }
-            };
+            static type
+            call(SeqRef seq)
+            {
+                return type(seq,0);
+            }
         };
-    }
-}}
+    };
+}}}
 
 #endif
Modified: sandbox/SOC/2009/fusion/boost/fusion/container/vector/detail/convert_impl.hpp
==============================================================================
--- sandbox/SOC/2009/fusion/boost/fusion/container/vector/detail/convert_impl.hpp	(original)
+++ sandbox/SOC/2009/fusion/boost/fusion/container/vector/detail/convert_impl.hpp	2009-07-10 18:07:00 EDT (Fri, 10 Jul 2009)
@@ -14,47 +14,42 @@
 #   include <boost/fusion/container/vector/detail/variadic_templates/as_vector_impl.hpp>
 #endif
 
-namespace boost { namespace fusion
+namespace boost { namespace fusion { namespace extension
 {
-    struct vector_tag;
+    template <typename T>
+    struct convert_impl;
 
-    namespace extension
+    template <>
+    struct convert_impl<vector_tag>
     {
-        template <typename T>
-        struct convert_impl;
-
-        template <>
-        struct convert_impl<vector_tag>
+        template <typename SeqRef>
+        struct apply
         {
-            template <typename SeqRef>
-            struct apply
-            {
 #ifdef BOOST_NO_VARIADIC_TEMPLATES
-                typedef typename
-                    detail::as_vector<result_of::size<SeqRef>::value>
-                gen;
-
-                typedef typename gen::template apply<
-                    typename result_of::begin<SeqRef>::type>::type
-                type;
-
-                static type call(SeqRef seq)
-                {
-                    return gen::call(
-                            fusion::begin(BOOST_FUSION_FORWARD(Sequence,seq)));
-                }
+            typedef typename
+                detail::as_vector<result_of::size<SeqRef>::value>
+            gen;
+
+            typedef typename gen::template apply<
+                typename result_of::begin<SeqRef>::type>::type
+            type;
+
+            static type call(SeqRef seq)
+            {
+                return gen::call(
+                        fusion::begin(BOOST_FUSION_FORWARD(Sequence,seq)));
+            }
 #else
-                typedef typename detail::as_vector_impl<SeqRef> gen;
-                typedef typename gen::apply::type type;
+            typedef typename detail::as_vector_impl<SeqRef> gen;
+            typedef typename gen::apply::type type;
 
-                static type call(SeqRef seq)
-                {
-                    return gen::call(seq);
-                }
+            static type call(SeqRef seq)
+            {
+                return gen::call(seq);
+            }
 #endif
-            };
         };
-    }
-}}
+    };
+}}}
 
 #endif
Modified: sandbox/SOC/2009/fusion/boost/fusion/container/vector/detail/deref_impl.hpp
==============================================================================
--- sandbox/SOC/2009/fusion/boost/fusion/container/vector/detail/deref_impl.hpp	(original)
+++ sandbox/SOC/2009/fusion/boost/fusion/container/vector/detail/deref_impl.hpp	2009-07-10 18:07:00 EDT (Fri, 10 Jul 2009)
@@ -8,46 +8,41 @@
 #ifndef BOOST_FUSION_CONTAINER_VECTOR_DETAIL_DEREF_IMPL_HPP
 #define BOOST_FUSION_CONTAINER_VECTOR_DETAIL_DEREF_IMPL_HPP
 
-#include <boost/type_traits/is_const.hpp>
 #include <boost/mpl/at.hpp>
-#include <boost/mpl/eval_if.hpp>
 
-namespace boost { namespace fusion
+namespace boost { namespace fusion { namespace extension
 {
-    struct vector_iterator_tag;
+    template <typename Tag>
+    struct deref_impl;
 
-    namespace extension
+    template <>
+    struct deref_impl<vector_iterator_tag>
     {
-        template <typename Tag>
-        struct deref_impl;
-
-        template <>
-        struct deref_impl<vector_iterator_tag>
+        template <typename ItRef>
+        struct apply
         {
-            template <typename ItRef>
-            struct apply
-            {
-                typedef typename detail::remove_reference<ItRef>::type it;
-                typedef typename it::vector vector;
-                typedef typename
-                    mpl::at<
-                        typename detail::remove_reference<vector>::type::types
+            typedef typename detail::remove_reference<ItRef>::type it;
+            typedef typename it::vector vector;
+
+            typedef
+                typename detail::forward_as<
+                    vector
+                  , typename mpl::at<
+                        typename detail::remove_reference<
+                            vector
+                        >::type::types
                       , typename it::index
                     >::type
-                element;
+                >::type
+            type;
 
-                typedef typename
-                    detail::result_of_forward_as<vector,element>::type
-                type;
-
-                static type
-                call(ItRef it)
-                {
-                    return it.vec->at_impl(typename it::index());
-                }
-            };
+            static type
+            call(ItRef it)
+            {
+                return it.vec->at_impl(typename it::index());
+            }
         };
-    }
-}}
+    };
+}}}
 
 #endif
Modified: sandbox/SOC/2009/fusion/boost/fusion/container/vector/detail/distance_impl.hpp
==============================================================================
--- sandbox/SOC/2009/fusion/boost/fusion/container/vector/detail/distance_impl.hpp	(original)
+++ sandbox/SOC/2009/fusion/boost/fusion/container/vector/detail/distance_impl.hpp	2009-07-10 18:07:00 EDT (Fri, 10 Jul 2009)
@@ -10,30 +10,25 @@
 
 #include <boost/mpl/minus.hpp>
 
-namespace boost { namespace fusion
+namespace boost { namespace fusion { namespace extension
 {
-    struct vector_iterator_tag;
+    template <typename Tag>
+    struct distance_impl;
 
-    namespace extension
+    template <>
+    struct distance_impl<vector_iterator_tag>
     {
-        template <typename Tag>
-        struct distance_impl;
-
-        template <>
-        struct distance_impl<vector_iterator_tag>
+        template <typename First, typename Last>
+        struct apply
         {
-            template <typename First, typename Last>
-            struct apply
-            {
-                typedef typename
-                    mpl::minus<
-                        typename detail::remove_reference<Last>::type::index
-                      , typename detail::remove_reference<First>::type::index
-                    >::type
-                type;
-            };
+            typedef typename
+                mpl::minus<
+                    typename detail::remove_reference<Last>::type::index
+                  , typename detail::remove_reference<First>::type::index
+                >::type
+            type;
         };
-    }
-}}
+    };
+}}}
 
 #endif
Modified: sandbox/SOC/2009/fusion/boost/fusion/container/vector/detail/end_impl.hpp
==============================================================================
--- sandbox/SOC/2009/fusion/boost/fusion/container/vector/detail/end_impl.hpp	(original)
+++ sandbox/SOC/2009/fusion/boost/fusion/container/vector/detail/end_impl.hpp	2009-07-10 18:07:00 EDT (Fri, 10 Jul 2009)
@@ -8,34 +8,31 @@
 #ifndef BOOST_FUSION_CONTAINER_VECTOR_DETAIL_END_IMPL_HPP
 #define BOOST_FUSION_CONTAINER_VECTOR_DETAIL_END_IMPL_HPP
 
-namespace boost { namespace fusion
+namespace boost { namespace fusion { namespace extension
 {
-    namespace extension
-    {
-        template <typename Tag>
-        struct end_impl;
+    template <typename Tag>
+    struct end_impl;
 
-        template <>
-        struct end_impl<vector_tag>
+    template <>
+    struct end_impl<vector_tag>
+    {
+        template <typename SeqRef>
+        struct apply
         {
-            template <typename SeqRef>
-            struct apply
-            {
-                typedef
-                    vector_iterator<
-                        SeqRef
-                      , detail::remove_reference<SeqRef>::type::size::value
-                    >
-                type;
+            typedef
+                vector_iterator<
+                    SeqRef
+                  , detail::remove_reference<SeqRef>::type::size::value
+                >
+            type;
 
-                static type
-                call(SeqRef seq)
-                {
-                    return type(seq,0);
-                }
-            };
+            static type
+            call(SeqRef seq)
+            {
+                return type(seq,0);
+            }
         };
-    }
-}}
+    };
+}}}
 
 #endif
Modified: sandbox/SOC/2009/fusion/boost/fusion/container/vector/detail/equal_to_impl.hpp
==============================================================================
--- sandbox/SOC/2009/fusion/boost/fusion/container/vector/detail/equal_to_impl.hpp	(original)
+++ sandbox/SOC/2009/fusion/boost/fusion/container/vector/detail/equal_to_impl.hpp	2009-07-10 18:07:00 EDT (Fri, 10 Jul 2009)
@@ -8,11 +8,22 @@
 #ifndef BOOST_FUSION_CONTAINER_VECTOR_DETAIL_EQUAL_TO_IMPL_HPP
 #define BOOST_FUSION_CONTAINER_VECTOR_DETAIL_EQUAL_TO_IMPL_HPP
 
+#include <boost/mpl/and.hpp>
+#include <boost/mpl/equal_to.hpp>
 #include <boost/type_traits/is_same.hpp>
 
 namespace boost { namespace fusion
 {
-    struct vector_iterator_tag;
+    namespace detail
+    {
+        template <typename It1, typename It2>
+        struct vector_types_equal
+          : is_same<
+                typename detail::identity<typename It1::vector>::type
+              , typename detail::identity<typename It2::vector>::type
+            >
+        {};
+    }
 
     namespace extension
     {
@@ -24,11 +35,16 @@
         {
             template <typename It1Ref, typename It2Ref>
             struct apply
-              : is_same<
-                    typename detail::remove_reference<It1Ref>::type::identity
-                  , typename detail::remove_reference<It2Ref>::type::identity
-                >
             {
+                typedef typename detail::remove_reference<It1Ref>::type it1;
+                typedef typename detail::remove_reference<It2Ref>::type it2;
+
+                typedef
+                    mpl::and_<
+                        mpl::equal_to<typename it1::index, typename it2::index>
+                      , detail::vector_types_equal<it1,it2>
+                    >
+                type;
             };
         };
     }
Modified: sandbox/SOC/2009/fusion/boost/fusion/container/vector/detail/next_impl.hpp
==============================================================================
--- sandbox/SOC/2009/fusion/boost/fusion/container/vector/detail/next_impl.hpp	(original)
+++ sandbox/SOC/2009/fusion/boost/fusion/container/vector/detail/next_impl.hpp	2009-07-10 18:07:00 EDT (Fri, 10 Jul 2009)
@@ -8,41 +8,33 @@
 #ifndef BOOST_FUSION_CONTAINER_VECTOR_DETAIL_NEXT_IMPL_HPP
 #define BOOST_FUSION_CONTAINER_VECTOR_DETAIL_NEXT_IMPL_HPP
 
-namespace boost { namespace fusion
+namespace boost { namespace fusion { namespace extension
 {
-    struct vector_iterator_tag;
+    template <typename Tag>
+    struct next_impl;
 
-    template <typename Vector, int N>
-    struct vector_iterator;
-
-    namespace extension
+    template <>
+    struct next_impl<vector_iterator_tag>
     {
-        template <typename Tag>
-        struct next_impl;
-
-        template <>
-        struct next_impl<vector_iterator_tag>
+        template <typename ItRef>
+        struct apply
         {
-            template <typename ItRef>
-            struct apply
-            {
-                typedef typename detail::remove_reference<ItRef>::type it;
+            typedef typename detail::remove_reference<ItRef>::type it;
 
-                typedef
-                    vector_iterator<
-                        typename it::vector
-                      , it::index::value+1
-                    >
-                type;
+            typedef
+                vector_iterator<
+                    typename it::vector
+                  , it::index::value+1
+                >
+            type;
 
-                static type
-                call(ItRef it)
-                {
-                    return type(*it.vec,0);
-                }
-            };
+            static type
+            call(ItRef it)
+            {
+                return type(*it.vec,0);
+            }
         };
-    }
-}}
+    };
+}}}
 
 #endif
Modified: sandbox/SOC/2009/fusion/boost/fusion/container/vector/detail/prior_impl.hpp
==============================================================================
--- sandbox/SOC/2009/fusion/boost/fusion/container/vector/detail/prior_impl.hpp	(original)
+++ sandbox/SOC/2009/fusion/boost/fusion/container/vector/detail/prior_impl.hpp	2009-07-10 18:07:00 EDT (Fri, 10 Jul 2009)
@@ -8,44 +8,35 @@
 #ifndef BOOST_FUSION_CONTAINER_VECTOR_DETAIL_PRIOR_IMPL_HPP
 #define BOOST_FUSION_CONTAINER_VECTOR_DETAIL_PRIOR_IMPL_HPP
 
-namespace boost { namespace fusion
+namespace boost { namespace fusion { namespace extension
 {
-    struct vector_iterator_tag;
-    template <typename Vector, int N>
-    struct vector_iterator;
+    template <typename Tag>
+    struct prior_impl;
 
-    namespace extension
+    template <>
+    struct prior_impl<vector_iterator_tag>
     {
-        template <typename Tag>
-        struct prior_impl;
-
-        template <>
-        struct prior_impl<vector_iterator_tag>
+        template <typename ItRef>
+        struct apply
         {
-            template <typename ItRef>
-            struct apply
-            {
-                typedef typename
-                    detail::remove_reference<ItRef>::type
-                it;
-
-                typedef
-                    vector_iterator<
-                        typename it::vector
-                      , it::index::value-1
-                    >
-                type;
+            typedef typename
+                detail::remove_reference<ItRef>::type
+            it;
+
+            typedef
+                vector_iterator<
+                    typename it::vector
+                  , it::index::value-1
+                >
+            type;
 
-                static type
-                call(ItRef it)
-                {
-                    return type(*it.vec,0);
-                }
-            };
+            static type
+            call(ItRef it)
+            {
+                return type(*it.vec,0);
+            }
         };
-    }
-}}
-
-//TODO I1 -> It1Ref
+    };
+}}}
 
 #endif
Modified: sandbox/SOC/2009/fusion/boost/fusion/container/vector/detail/value_at_impl.hpp
==============================================================================
--- sandbox/SOC/2009/fusion/boost/fusion/container/vector/detail/value_at_impl.hpp	(original)
+++ sandbox/SOC/2009/fusion/boost/fusion/container/vector/detail/value_at_impl.hpp	2009-07-10 18:07:00 EDT (Fri, 10 Jul 2009)
@@ -10,30 +10,25 @@
 
 #include <boost/mpl/at.hpp>
 
-namespace boost { namespace fusion
+namespace boost { namespace fusion { namespace extension
 {
-    struct vector_tag;
+    template <typename Tag>
+    struct value_at_impl;
 
-    namespace extension
+    template <>
+    struct value_at_impl<vector_tag>
     {
-        template <typename Tag>
-        struct value_at_impl;
-
-        template <>
-        struct value_at_impl<vector_tag>
+        template <typename SeqRef, typename N>
+        struct apply
         {
-            template <typename SeqRef, typename N>
-            struct apply
-            {
-                typedef typename
-                    mpl::at<
-                        typename detail::remove_reference<SeqRef>::type::types
-                      , N
-                    >::type
-                type;
-            };
+            typedef typename
+                mpl::at<
+                    typename detail::remove_reference<SeqRef>::type::types
+                  , N
+                >::type
+            type;
         };
-    }
-}}
+    };
+}}}
 
 #endif
Modified: sandbox/SOC/2009/fusion/boost/fusion/container/vector/detail/value_of_impl.hpp
==============================================================================
--- sandbox/SOC/2009/fusion/boost/fusion/container/vector/detail/value_of_impl.hpp	(original)
+++ sandbox/SOC/2009/fusion/boost/fusion/container/vector/detail/value_of_impl.hpp	2009-07-10 18:07:00 EDT (Fri, 10 Jul 2009)
@@ -10,37 +10,32 @@
 
 #include <boost/mpl/at.hpp>
 
-namespace boost { namespace fusion
+namespace boost { namespace fusion { namespace extension
 {
-    struct vector_iterator_tag;
+    template <typename Tag>
+    struct value_of_impl;
 
-    namespace extension
+    template <>
+    struct value_of_impl<vector_iterator_tag>
     {
-        template <typename Tag>
-        struct value_of_impl;
-
-        template <>
-        struct value_of_impl<vector_iterator_tag>
+        template <typename ItRef>
+        struct apply
         {
-            template <typename ItRef>
-            struct apply
-            {
-                typedef typename
-                    detail::remove_reference<ItRef>::type
-                it;
-                typedef typename
-                    it::vector
-                vector;
-
-                typedef typename
-                    mpl::at<
-                        typename detail::remove_reference<vector>::type::types
-                      , typename it::index
-                    >::type
-                type;
-            };
+            typedef typename
+                detail::remove_reference<ItRef>::type
+            it;
+            typedef typename
+                it::vector
+            vector;
+
+            typedef typename
+                mpl::at<
+                    typename detail::remove_reference<vector>::type::types
+                  , typename it::index
+                >::type
+            type;
         };
-    }
-}}
+    };
+}}}
 
 #endif
Modified: sandbox/SOC/2009/fusion/boost/fusion/container/vector/detail/variadic_templates/vector_impl.hpp
==============================================================================
--- sandbox/SOC/2009/fusion/boost/fusion/container/vector/detail/variadic_templates/vector_impl.hpp	(original)
+++ sandbox/SOC/2009/fusion/boost/fusion/container/vector/detail/variadic_templates/vector_impl.hpp	2009-07-10 18:07:00 EDT (Fri, 10 Jul 2009)
@@ -13,6 +13,7 @@
 #include <boost/fusion/support/variadic_templates/variadic_arguments_to_vector.hpp>
 #include <boost/fusion/support/sequence_assign.hpp>
 #include <boost/fusion/support/assign_tags.hpp>
+#include <boost/fusion/support/sequence_base.hpp>
 
 #include <boost/mpl/int.hpp>
 
Added: sandbox/SOC/2009/fusion/boost/fusion/container/vector/detail/vector_iterator.hpp
==============================================================================
--- (empty file)
+++ sandbox/SOC/2009/fusion/boost/fusion/container/vector/detail/vector_iterator.hpp	2009-07-10 18:07:00 EDT (Fri, 10 Jul 2009)
@@ -0,0 +1,53 @@
+/*=============================================================================
+    Copyright (c) 2001-2006 Joel de Guzman
+
+    Distributed under 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_FUSION_CONTAINER_VECTOR_DETAIL_VECTOR_ITERATOR_HPP
+#define BOOST_FUSION_CONTAINER_VECTOR_DETAIL_VECTOR_ITERATOR_HPP
+
+//TODO cschmidt: move in detail
+
+#include <boost/fusion/support/iterator_base.hpp>
+#include <boost/type_traits/remove_const.hpp>
+#include <boost/type_traits/remove_cv.hpp>
+#include <boost/mpl/int.hpp>
+
+namespace boost { namespace fusion
+{
+    struct vector_iterator_tag;
+    struct random_access_traversal_tag;
+
+    template <typename VecRef, int N>
+    struct vector_iterator
+      : iterator_base<vector_iterator<VecRef, N> >
+    {
+        typedef mpl::int_<N> index;
+        typedef VecRef vector;
+        typedef vector_iterator_tag fusion_tag;
+        typedef random_access_traversal_tag category;
+
+        template<typename OtherIt>
+        vector_iterator(OtherIt const& it)
+          : vec(it.vec)
+        {}
+
+        vector_iterator(VecRef vec, int)
+          : vec(&vec)
+        {}
+
+        template<typename OtherIt>
+        vector_iterator&
+        operator=(OtherIt const& it)
+        {
+            vec=it.vec;
+            return *this;
+        }
+
+        typename detail::remove_reference<VecRef>::type* vec;
+    };
+}}
+
+#endif
Modified: sandbox/SOC/2009/fusion/boost/fusion/container/vector/vector.hpp
==============================================================================
--- sandbox/SOC/2009/fusion/boost/fusion/container/vector/vector.hpp	(original)
+++ sandbox/SOC/2009/fusion/boost/fusion/container/vector/vector.hpp	2009-07-10 18:07:00 EDT (Fri, 10 Jul 2009)
@@ -154,21 +154,22 @@
     };
 }}
 #else
+#   include <boost/fusion/container/vector/vector_fwd.hpp>
 #   include <boost/fusion/support/ref.hpp>
-#   include <boost/fusion/container/vector/vector_iterator.hpp>
 
 #   include <boost/fusion/container/vector/detail/at_impl.hpp>
 #   include <boost/fusion/container/vector/detail/value_at_impl.hpp>
+
+#   include <boost/fusion/container/vector/detail/vector_iterator.hpp>
 #   include <boost/fusion/container/vector/detail/begin_impl.hpp>
 #   include <boost/fusion/container/vector/detail/end_impl.hpp>
-
-namespace boost { namespace fusion {
-
-struct vector_tag;
-struct fusion_sequence_tag;
-struct random_access_traversal_tag;
-
-}}
+#   include <boost/fusion/container/vector/detail/deref_impl.hpp>
+#   include <boost/fusion/container/vector/detail/value_of_impl.hpp>
+#   include <boost/fusion/container/vector/detail/next_impl.hpp>
+#   include <boost/fusion/container/vector/detail/prior_impl.hpp>
+#   include <boost/fusion/container/vector/detail/equal_to_impl.hpp>
+#   include <boost/fusion/container/vector/detail/distance_impl.hpp>
+#   include <boost/fusion/container/vector/detail/advance_impl.hpp>
 
 #   include <boost/fusion/container/vector/detail/variadic_templates/vector_impl.hpp>
 #endif
Modified: sandbox/SOC/2009/fusion/boost/fusion/container/vector/vector10.hpp
==============================================================================
--- sandbox/SOC/2009/fusion/boost/fusion/container/vector/vector10.hpp	(original)
+++ sandbox/SOC/2009/fusion/boost/fusion/container/vector/vector10.hpp	2009-07-10 18:07:00 EDT (Fri, 10 Jul 2009)
@@ -11,6 +11,7 @@
 #include <boost/config.hpp>
 
 #if defined(BOOST_NO_VARIADIC_TEMPLATES) || !defined(BOOST_FUSION_CPP0X_NO_DEPRECEATED)
+//TODO!!!
 #ifndef BOOST_NO_VARIADIC_TEMPLATES
 #   include <boost/fusion/container/vector/vector.hpp>
 #endif
Modified: sandbox/SOC/2009/fusion/boost/fusion/container/vector/vector_fwd.hpp
==============================================================================
--- sandbox/SOC/2009/fusion/boost/fusion/container/vector/vector_fwd.hpp	(original)
+++ sandbox/SOC/2009/fusion/boost/fusion/container/vector/vector_fwd.hpp	2009-07-10 18:07:00 EDT (Fri, 10 Jul 2009)
@@ -14,6 +14,8 @@
 
 namespace boost { namespace fusion
 {
+    struct vector_tag;
+
     VARIADIC_TEMPLATE_WITH_DEFAULT(FUSION_MAX_VECTOR_SIZE)
     struct vector;
 }}
Deleted: sandbox/SOC/2009/fusion/boost/fusion/container/vector/vector_iterator.hpp
==============================================================================
--- sandbox/SOC/2009/fusion/boost/fusion/container/vector/vector_iterator.hpp	2009-07-10 18:07:00 EDT (Fri, 10 Jul 2009)
+++ (empty file)
@@ -1,72 +0,0 @@
-/*=============================================================================
-    Copyright (c) 2001-2006 Joel de Guzman
-
-    Distributed under 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_FUSION_CONTAINER_VECTOR_VECTOR_ITERATOR_HPP
-#define BOOST_FUSION_CONTAINER_VECTOR_VECTOR_ITERATOR_HPP
-
-//TODO cschmidt: move in detail
-
-#include <boost/fusion/support/iterator_base.hpp>
-#include <boost/fusion/container/vector/detail/deref_impl.hpp>
-#include <boost/fusion/container/vector/detail/value_of_impl.hpp>
-#include <boost/fusion/container/vector/detail/next_impl.hpp>
-#include <boost/fusion/container/vector/detail/prior_impl.hpp>
-#include <boost/fusion/container/vector/detail/equal_to_impl.hpp>
-#include <boost/fusion/container/vector/detail/distance_impl.hpp>
-#include <boost/fusion/container/vector/detail/advance_impl.hpp>
-
-#include <boost/type_traits/remove_const.hpp>
-#include <boost/type_traits/remove_cv.hpp>
-#include <boost/mpl/int.hpp>
-
-namespace boost { namespace fusion
-{
-    struct vector_iterator_tag;
-    struct random_access_traversal_tag;
-
-    //TODO needed?
-    template <typename Vector, int N>
-    struct vector_iterator_identity;
-
-    //TODO VecRef!
-    template <typename Vector, int N>
-    struct vector_iterator
-      : iterator_base<vector_iterator<Vector, N> >
-    {
-        typedef mpl::int_<N> index;
-        typedef Vector vector;
-        typedef vector_iterator_tag fusion_tag;
-        typedef random_access_traversal_tag category;
-        typedef
-            vector_iterator_identity<
-                typename detail::identity<Vector>::type
-              , N
-            >
-        identity;
-
-        template<typename OtherVecIt>
-        vector_iterator(OtherVecIt const& it)
-          : vec(it.vec)
-        {}
-
-        vector_iterator(Vector vec, int)
-          : vec(&vec)
-        {}
-
-        template<typename OtherVecIt>
-        vector_iterator&
-        operator=(OtherVecIt const& it)
-        {
-            vec=it.vec;
-            return *this;
-        }
-
-        typename detail::remove_reference<Vector>::type* vec;
-    };
-}}
-
-#endif
Modified: sandbox/SOC/2009/fusion/boost/fusion/functional/adapter/detail/access.hpp
==============================================================================
--- sandbox/SOC/2009/fusion/boost/fusion/functional/adapter/detail/access.hpp	(original)
+++ sandbox/SOC/2009/fusion/boost/fusion/functional/adapter/detail/access.hpp	2009-07-10 18:07:00 EDT (Fri, 10 Jul 2009)
@@ -11,7 +11,7 @@
 
 namespace boost { namespace fusion { namespace detail
 {
-    // const reference deduction for function templates that accept T const &
+    // const reference deduction for function templates that accept T const&
     template <typename T> struct cref               { typedef T const& type; };
     template <typename T> struct cref<T&>           { typedef T const& type; };
     template <typename T> struct cref<T const>      { typedef T const& type; };
@@ -21,7 +21,7 @@
     template <typename T> struct mref<T&>           { typedef T      & type; };
 
     // generic reference deduction for function templates that are overloaded
-    // to accept both T const & and T &
+    // to accept both T const& and T &
     template <typename T> struct gref               { typedef T const& type; };
     template <typename T> struct gref<T&>           { typedef T      & type; };
     template <typename T> struct gref<T const>      { typedef T const& type; };
Modified: sandbox/SOC/2009/fusion/boost/fusion/functional/adapter/fused.hpp
==============================================================================
--- sandbox/SOC/2009/fusion/boost/fusion/functional/adapter/fused.hpp	(original)
+++ sandbox/SOC/2009/fusion/boost/fusion/functional/adapter/fused.hpp	2009-07-10 18:07:00 EDT (Fri, 10 Jul 2009)
@@ -36,14 +36,14 @@
 
         template <class Seq> 
         inline typename result_of::invoke<func_const_fwd_t,Seq const>::type 
-        operator()(Seq const & s) const
+        operator()(Seq const& s) const
         {
             return fusion::invoke<func_const_fwd_t>(this->fnc_transformed,s);
         }
 
         template <class Seq> 
         inline typename result_of::invoke<func_fwd_t,Seq const>::type 
-        operator()(Seq const & s) 
+        operator()(Seq const& s) 
         {
             return fusion::invoke<func_fwd_t>(this->fnc_transformed,s);
         }
Modified: sandbox/SOC/2009/fusion/boost/fusion/functional/adapter/fused_function_object.hpp
==============================================================================
--- sandbox/SOC/2009/fusion/boost/fusion/functional/adapter/fused_function_object.hpp	(original)
+++ sandbox/SOC/2009/fusion/boost/fusion/functional/adapter/fused_function_object.hpp	2009-07-10 18:07:00 EDT (Fri, 10 Jul 2009)
@@ -36,7 +36,7 @@
 
         template <class Seq> 
         inline typename result_of::invoke_function_object<func_const_fwd_t,
-            Seq const>::type operator()(Seq const & s) const
+            Seq const>::type operator()(Seq const& s) const
         {
           return fusion::invoke_function_object<
               func_const_fwd_t >(this->fnc_transformed,s);
@@ -45,7 +45,7 @@
         template <class Seq> 
         inline typename result_of::invoke_function_object<func_fwd_t,
             Seq const>::type 
-        operator()(Seq const & s) 
+        operator()(Seq const& s) 
         {
           return fusion::invoke_function_object<
               func_fwd_t >(this->fnc_transformed,s);
Modified: sandbox/SOC/2009/fusion/boost/fusion/functional/adapter/fused_procedure.hpp
==============================================================================
--- sandbox/SOC/2009/fusion/boost/fusion/functional/adapter/fused_procedure.hpp	(original)
+++ sandbox/SOC/2009/fusion/boost/fusion/functional/adapter/fused_procedure.hpp	2009-07-10 18:07:00 EDT (Fri, 10 Jul 2009)
@@ -35,14 +35,14 @@
         { }
 
         template <class Seq> 
-        inline void operator()(Seq const & s) const
+        inline void operator()(Seq const& s) const
         {
             fusion::invoke_procedure<
                 func_const_fwd_t >(this->fnc_transformed,s);
         }
 
         template <class Seq> 
-        inline void operator()(Seq const & s) 
+        inline void operator()(Seq const& s) 
         {
             fusion::invoke_procedure<
                 func_fwd_t >(this->fnc_transformed,s);
Modified: sandbox/SOC/2009/fusion/boost/fusion/functional/adapter/unfused.hpp
==============================================================================
--- sandbox/SOC/2009/fusion/boost/fusion/functional/adapter/unfused.hpp	(original)
+++ sandbox/SOC/2009/fusion/boost/fusion/functional/adapter/unfused.hpp	2009-07-10 18:07:00 EDT (Fri, 10 Jul 2009)
@@ -45,7 +45,7 @@
         { }
 
         typedef typename boost::result_of<
-            function_c(fusion::vector0<> &) >::type call_const_0_result;
+            function_c(fusion::vector0<>&) >::type call_const_0_result;
 
         inline call_const_0_result operator()() const
         {
@@ -54,7 +54,7 @@
         }
 
         typedef typename boost::result_of< 
-            function(fusion::vector0<> &) >::type call_0_result;
+            function(fusion::vector0<>&) >::type call_0_result;
 
         inline call_0_result operator()() 
         {
@@ -114,19 +114,19 @@
         struct result< Self const (BOOST_PP_ENUM_PARAMS(N,T)) >
             : boost::result_of< function_c(
                 BOOST_PP_CAT(fusion::vector,N)< BOOST_PP_ENUM_BINARY_PARAMS(N,
-                    typename detail::mref<T,>::type BOOST_PP_INTERCEPT) > & )>
+                    typename detail::mref<T,>::type BOOST_PP_INTERCEPT) >& )>
         { };
 
         template <class Self, BOOST_PP_ENUM_PARAMS(N,typename T)>
         struct result< Self(BOOST_PP_ENUM_PARAMS(N,T)) >
             : boost::result_of< function(
                 BOOST_PP_CAT(fusion::vector,N)< BOOST_PP_ENUM_BINARY_PARAMS(N,
-                    typename detail::mref<T,>::type BOOST_PP_INTERCEPT) > & )>
+                    typename detail::mref<T,>::type BOOST_PP_INTERCEPT) >& )>
         { };
 
         template <BOOST_PP_ENUM_PARAMS(N,typename T)>
         inline typename boost::result_of<function_c(BOOST_PP_CAT(fusion::vector,N)
-            <BOOST_PP_ENUM_BINARY_PARAMS(N,T,& BOOST_PP_INTERCEPT)> & )>::type
+            <BOOST_PP_ENUM_BINARY_PARAMS(N,T,& BOOST_PP_INTERCEPT)>& )>::type
         operator()(BOOST_PP_ENUM_BINARY_PARAMS(N,T,& a)) const
         {
             BOOST_PP_CAT(fusion::vector,N)<
@@ -137,7 +137,7 @@
 
         template <BOOST_PP_ENUM_PARAMS(N,typename T)>
         inline typename boost::result_of<function(BOOST_PP_CAT(fusion::vector,N)
-            <BOOST_PP_ENUM_BINARY_PARAMS(N,T,& BOOST_PP_INTERCEPT)> & )>::type
+            <BOOST_PP_ENUM_BINARY_PARAMS(N,T,& BOOST_PP_INTERCEPT)>& )>::type
         operator()(BOOST_PP_ENUM_BINARY_PARAMS(N,T,& a)) 
         {
             BOOST_PP_CAT(fusion::vector,N)<
Modified: sandbox/SOC/2009/fusion/boost/fusion/functional/generation/detail/gen_make_adapter.hpp
==============================================================================
--- sandbox/SOC/2009/fusion/boost/fusion/functional/generation/detail/gen_make_adapter.hpp	(original)
+++ sandbox/SOC/2009/fusion/boost/fusion/functional/generation/detail/gen_make_adapter.hpp	2009-07-10 18:07:00 EDT (Fri, 10 Jul 2009)
@@ -32,7 +32,7 @@
 
     template <typename F>
     inline typename result_of::BOOST_FUSION_FUNC_NAME<F>::type
-    BOOST_FUSION_FUNC_NAME(F const & f)
+    BOOST_FUSION_FUNC_NAME(F const& f)
     {
         return typename result_of::BOOST_FUSION_FUNC_NAME<F>::type(f);
     }
Modified: sandbox/SOC/2009/fusion/boost/fusion/functional/invocation/invoke.hpp
==============================================================================
--- sandbox/SOC/2009/fusion/boost/fusion/functional/invocation/invoke.hpp	(original)
+++ sandbox/SOC/2009/fusion/boost/fusion/functional/invocation/invoke.hpp	2009-07-10 18:07:00 EDT (Fri, 10 Jul 2009)
@@ -63,7 +63,7 @@
 
     template <typename Function, class Sequence>
     inline typename result_of::invoke<Function, Sequence const>::type
-    invoke(Function, Sequence const &);
+    invoke(Function, Sequence const&);
 
     //----- ---- --- -- - -  -   -
 
@@ -171,7 +171,7 @@
 
     template <typename Function, class Sequence>
     inline typename result_of::invoke<Function,Sequence const>::type
-    invoke(Function f, Sequence const & s)
+    invoke(Function f, Sequence const& s)
     {
         return detail::invoke_impl<
                 typename boost::remove_reference<Function>::type,Sequence const
Modified: sandbox/SOC/2009/fusion/boost/fusion/functional/invocation/invoke_function_object.hpp
==============================================================================
--- sandbox/SOC/2009/fusion/boost/fusion/functional/invocation/invoke_function_object.hpp	(original)
+++ sandbox/SOC/2009/fusion/boost/fusion/functional/invocation/invoke_function_object.hpp	2009-07-10 18:07:00 EDT (Fri, 10 Jul 2009)
@@ -45,7 +45,7 @@
 
     template <class Function, class Sequence>
     inline typename result_of::invoke_function_object<Function, Sequence const
-        >::type invoke_function_object(Function, Sequence const &);
+        >::type invoke_function_object(Function, Sequence const&);
 
     //----- ---- --- -- - -  -   -
 
@@ -89,7 +89,7 @@
 
     template <class Function, class Sequence>
     inline typename result_of::invoke_function_object<Function,Sequence const>::type
-    invoke_function_object(Function f, Sequence const & s)
+    invoke_function_object(Function f, Sequence const& s)
     {
         return detail::invoke_function_object_impl<
                 typename boost::remove_reference<Function>::type,Sequence const
Modified: sandbox/SOC/2009/fusion/boost/fusion/functional/invocation/invoke_procedure.hpp
==============================================================================
--- sandbox/SOC/2009/fusion/boost/fusion/functional/invocation/invoke_procedure.hpp	(original)
+++ sandbox/SOC/2009/fusion/boost/fusion/functional/invocation/invoke_procedure.hpp	2009-07-10 18:07:00 EDT (Fri, 10 Jul 2009)
@@ -50,7 +50,7 @@
     inline void invoke_procedure(Function, Sequence &);
 
     template <typename Function, class Sequence>
-    inline void invoke_procedure(Function, Sequence const &);
+    inline void invoke_procedure(Function, Sequence const&);
 
     //----- ---- --- -- - -  -   -
 
@@ -83,7 +83,7 @@
     }
 
     template <typename Function, class Sequence>
-    inline void invoke_procedure(Function f, Sequence const & s)
+    inline void invoke_procedure(Function f, Sequence const& s)
     {
         detail::invoke_procedure_impl<
                 typename boost::remove_reference<Function>::type,Sequence const
Modified: sandbox/SOC/2009/fusion/boost/fusion/iterator/distance.hpp
==============================================================================
--- sandbox/SOC/2009/fusion/boost/fusion/iterator/distance.hpp	(original)
+++ sandbox/SOC/2009/fusion/boost/fusion/iterator/distance.hpp	2009-07-10 18:07:00 EDT (Fri, 10 Jul 2009)
@@ -27,26 +27,26 @@
         struct distance_impl
         {
             // default implementation
-            template <typename First, typename Last>
+            template <typename FirstRef, typename LastRef>
             struct apply
-              : distance_detail::linear_distance<First, Last>::type
+              : distance_detail::linear_distance<FirstRef, LastRef>
             {
-                BOOST_FUSION_MPL_ASSERT_NOT(
-                        traits::is_random_access<First>,
+                /*BOOST_FUSION_MPL_ASSERT_NOT(
+                        traits::is_random_access<FirstRef>,
       "default implementation not available for random access iterators");
                 BOOST_FUSION_MPL_ASSERT_NOT(
-                        traits::is_random_access<Last>,
-      "default implementation not available for random access iterators");
+                        traits::is_random_access<FirstRef>,
+      "default implementation not available for random access iterators");*/
             };
         };
 
         template <>
         struct distance_impl<iterator_facade_tag>
         {
-            template <typename First, typename Last>
+            template <typename FirstRef, typename LastRef>
             struct apply
-              : detail::remove_reference<First>::type::
-                    template distance<First, Last>::type
+              : detail::remove_reference<FirstRef>::type::
+                  template distance<FirstRef, LastRef>
             {};
         };
     }
Modified: sandbox/SOC/2009/fusion/boost/fusion/iterator/equal_to.hpp
==============================================================================
--- sandbox/SOC/2009/fusion/boost/fusion/iterator/equal_to.hpp	(original)
+++ sandbox/SOC/2009/fusion/boost/fusion/iterator/equal_to.hpp	2009-07-10 18:07:00 EDT (Fri, 10 Jul 2009)
@@ -46,32 +46,32 @@
                 template apply<
                     typename detail::add_lref<It1>::type
                   , typename detail::add_lref<It2>::type
-                >
+                >::type
         {};
     }
 
     namespace iterator_operators
     {
-        template <typename Iter1, typename Iter2>
+        template <typename It1, typename It2>
         inline typename
             enable_if<
-                mpl::and_<is_fusion_iterator<Iter1>, is_fusion_iterator<Iter2> >
+                mpl::and_<is_fusion_iterator<It1>, is_fusion_iterator<It2> >
               , bool
-                >::type
-        operator==(Iter1 const&, Iter2 const&)
+            >::type
+        operator==(It1 const&, It2 const&)
         {
-            return result_of::equal_to<Iter1 const&, Iter2 const&>::value;
+            return result_of::equal_to<It1 const&, It1 const&>::value;
         }
 
-        template <typename Iter1, typename Iter2>
+        template <typename It1, typename It2>
         inline typename
-        enable_if<
-            mpl::and_<is_fusion_iterator<Iter1>, is_fusion_iterator<Iter2> >
-          , bool
+            enable_if<
+                mpl::and_<is_fusion_iterator<It1>, is_fusion_iterator<It2> >
+              , bool
             >::type
-        operator!=(Iter1 const&, Iter2 const&)
+        operator!=(It1 const&, It1 const&)
         {
-            return !result_of::equal_to<Iter1 const&, Iter2 const&>::value;
+            return !result_of::equal_to<It1 const&, It1 const&>::value;
         }
     }
 
Modified: sandbox/SOC/2009/fusion/boost/fusion/support/deduce.hpp
==============================================================================
--- sandbox/SOC/2009/fusion/boost/fusion/support/deduce.hpp	(original)
+++ sandbox/SOC/2009/fusion/boost/fusion/support/deduce.hpp	2009-07-10 18:07:00 EDT (Fri, 10 Jul 2009)
@@ -1,102 +1,41 @@
-/*=============================================================================
-    Copyright (c) 2007 Tobias Schwinger
-
-    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).
-==============================================================================*/
+// Copyright Christopher Schmidt 2009.
+// Distributed under 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_FUSION_SUPPORT_DEDUCE_HPP
 #define BOOST_FUSION_SUPPORT_DEDUCE_HPP
 
-#include <boost/ref.hpp>
+#include <boost/fusion/support/detail/as_fusion_element.hpp>
+
+#include <boost/config.hpp>
 
 namespace boost { namespace fusion { namespace traits
 {
-    template <typename T> struct deduce;
-
-    // Non-references pass unchanged
-
+    //TODO doc!
+#ifdef BOOST_NO_RVALUE_REFERENCES
     template <typename T>
     struct deduce
-    {
-        typedef T type;
-    };
-
-    template <typename T>
-    struct deduce<T const>
-    {
-        typedef T type;
-    };
-
-    template <typename T>
-    struct deduce<T volatile>
-    {
-        typedef T type;
-    };
-
-    template <typename T>
-    struct deduce<T const volatile>
-    {
-        typedef T type;
-    };
-
-    // Keep references on mutable LValues
-
+      : detail::as_fusion_element<T>
+    {};
+#else
     template <typename T>
-    struct deduce<T &>
-    {
-        typedef T & type;
-    };
-
-    template <typename T>
-    struct deduce<T volatile&>
-    {
-        typedef T volatile& type;
-    };
-
-    // Store away potential RValues
-
-    template <typename T>
-    struct deduce<T const&>
-    {
-        typedef T type;
-    };
-
-    template <typename T>
-    struct deduce<T const volatile&>
-    {
-        typedef T type;
-    };
-
-    // Unwrap Boost.RefS (referencee cv is deduced)
-
-    template <typename T>
-    struct deduce<reference_wrapper<T> & >
-    {
-        typedef T& type;
-    };
-
-    template <typename T>
-    struct deduce<reference_wrapper<T> const & >
-    {
-        typedef T& type;
-    };
-
-    // Keep references on arrays, even if const
-
-    template <typename T, int N>
-    struct deduce<const T(&)[N]>
+    struct deduce
     {
-        typedef const T(&type)[N];
-    };
+        typedef typename detail::as_fusion_element<T>::type element;
 
-    template <typename T, int N>
-    struct deduce<const volatile T(&)[N]>
-    {
-        typedef const volatile T(&type)[N];
+        typedef typename
+            mpl::if_<
+                mpl::and_<
+                    detail::is_lrref<T>
+                  , is_same<typename detail::identity<T>::type,element>
+                >
+              , T
+              , element
+            >::type
+        type;
     };
-
+#endif
 }}}
 
 #endif
Modified: sandbox/SOC/2009/fusion/boost/fusion/support/deduce_sequence.hpp
==============================================================================
--- sandbox/SOC/2009/fusion/boost/fusion/support/deduce_sequence.hpp	(original)
+++ sandbox/SOC/2009/fusion/boost/fusion/support/deduce_sequence.hpp	2009-07-10 18:07:00 EDT (Fri, 10 Jul 2009)
@@ -24,18 +24,17 @@
             template <typename Sig>
             struct result;
 
-            template <class Self, typename T>
-            struct result< Self(T) >
-                : fusion::traits::deduce<T>
-            { };
+            template<typename T>
+            struct result<deducer(T)>
+              : fusion::traits::deduce<T>
+            {};
         };
     }
 
-    template <class Sequence>
+    template <class Seq>
     struct deduce_sequence
-        : result_of::as_vector<
-            fusion::transform_view<Sequence, detail::deducer> >
-    { };
+      : result_of::as_vector<fusion::transform_view<Seq, detail::deducer> >
+    {};
 
 }}}
 
Modified: sandbox/SOC/2009/fusion/boost/fusion/support/detail/as_fusion_element.hpp
==============================================================================
--- sandbox/SOC/2009/fusion/boost/fusion/support/detail/as_fusion_element.hpp	(original)
+++ sandbox/SOC/2009/fusion/boost/fusion/support/detail/as_fusion_element.hpp	2009-07-10 18:07:00 EDT (Fri, 10 Jul 2009)
@@ -30,40 +30,40 @@
     template <typename T>\
     struct as_fusion_element<T COMBINATION>\
       : as_fusion_element<T>\
-    {};
+    {};\
+    \
+    template <typename T>\
+    struct as_fusion_element<reference_wrapper<T> COMBINATION>\
+    {\
+        typedef T& type;\
+    };
 
     BOOST_FUSION_ALL_CV_REF_COMBINATIONS(CV_REF_SPECIALISATION,_)
 
 #undef CV_REF_SPECIALISATION
 
-    template <typename T>
-    struct as_fusion_element<reference_wrapper<T> >
-    {
-        typedef T& type;
-    };
-
-    template <typename T>
-    struct as_fusion_element<reference_wrapper<T> const>
+    template <typename T, int N>
+    struct as_fusion_element<T(&)[N]>
     {
-        typedef T& type;
+        typedef T(&type)[N];
     };
 
     template <typename T, int N>
-    struct as_fusion_element<T[N]>
+    struct as_fusion_element<const T(&)[N]>
     {
-        typedef const typename as_fusion_element<T>::type(&type)[N];
+        typedef const T(&type)[N];
     };
 
     template <typename T, int N>
-    struct as_fusion_element<volatile T[N]>
+    struct as_fusion_element<volatile T(&)[N]>
     {
-        typedef const volatile typename as_fusion_element<T>::type(&type)[N];
+        typedef volatile T(&type)[N];
     };
 
     template <typename T, int N>
-    struct as_fusion_element<const volatile T[N]>
+    struct as_fusion_element<volatile const T(&)[N]>
     {
-        typedef const volatile typename as_fusion_element<T>::type(&type)[N];
+        typedef volatile const T(&type)[N];
     };
 
     template <typename T>
Deleted: sandbox/SOC/2009/fusion/boost/fusion/support/detail/is_mpl_sequence.hpp
==============================================================================
--- sandbox/SOC/2009/fusion/boost/fusion/support/detail/is_mpl_sequence.hpp	2009-07-10 18:07:00 EDT (Fri, 10 Jul 2009)
+++ (empty file)
@@ -1,36 +0,0 @@
-/*=============================================================================
-    Copyright (c) 2001-2006 Joel de Guzman
-    Copyright (c) 2005-2006 Dan Marsden
-
-    Distributed under 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_FUSION_SUPPORT_DETAIL_IS_MPL_SEQUENCE_HPP
-#define BOOST_FUSION_SUPPORT_DETAIL_IS_MPL_SEQUENCE_HPP
-
-#include <boost/fusion/support/sequence_base.hpp>
-#include <boost/fusion/support/ref.hpp>
-
-#include <boost/mpl/is_sequence.hpp>
-#include <boost/mpl/and.hpp>
-#include <boost/mpl/not.hpp>
-#include <boost/type_traits/is_base_of.hpp>
-
-namespace boost { namespace fusion { namespace detail
-{
-    template <typename T>
-    struct is_mpl_sequence
-      : mpl::and_<
-            mpl::not_<
-                is_base_of<
-                    sequence_root
-                  , typename identity<T>::type
-                >
-            >
-          , mpl::is_sequence<typename identity<T>::type>
-        >
-    {};
-}}}
-
-#endif
Modified: sandbox/SOC/2009/fusion/boost/fusion/support/detail/iterator_adapter/advance_impl.hpp
==============================================================================
--- sandbox/SOC/2009/fusion/boost/fusion/support/detail/iterator_adapter/advance_impl.hpp	(original)
+++ sandbox/SOC/2009/fusion/boost/fusion/support/detail/iterator_adapter/advance_impl.hpp	2009-07-10 18:07:00 EDT (Fri, 10 Jul 2009)
@@ -8,45 +8,37 @@
 
 #include <boost/fusion/iterator/advance.hpp>
 
-namespace boost { namespace fusion
+namespace boost { namespace fusion { namespace extension
 {
-    template<typename It, typename NewCategory>
-    struct iterator_adapter;
+    template <typename Tag>
+    struct advance_impl;
 
-    struct iterator_adapter_tag;
-
-    namespace extension
+    template <>
+    struct advance_impl<iterator_adapter_tag>
     {
-        template <typename Tag>
-        struct advance_impl;
-
-        template <>
-        struct advance_impl<iterator_adapter_tag>
+        template <typename ItRef, typename N>
+        struct apply
         {
-            template <typename ItRef, typename N>
-            struct apply
-            {
-                //TODO cschmidt: category assert
-                typedef typename detail::remove_reference<ItRef>::type it;
+            //TODO cschmidt: category assert
+            typedef typename detail::remove_reference<ItRef>::type it;
 
-                typedef
-                    iterator_adapter<
-                        typename result_of::advance<
-                            typename it::iterator_type
-                          , N
-                        >::type
-                      , typename it::category
-                    >
-                type;
-
-                static type
-                call(ItRef it)
-                {
-                    return type(fusion::advance<N>(it.it),0);
-                }
-            };
+            typedef
+                iterator_adapter<
+                    typename result_of::advance<
+                        typename it::iterator_type
+                      , N
+                    >::type
+                  , typename it::category
+                >
+            type;
+
+            static type
+            call(ItRef it)
+            {
+                return type(fusion::advance<N>(it.it),0);
+            }
         };
-    }
-}}
+    };
+}}}
 
 #endif
Modified: sandbox/SOC/2009/fusion/boost/fusion/support/detail/iterator_adapter/deref_impl.hpp
==============================================================================
--- sandbox/SOC/2009/fusion/boost/fusion/support/detail/iterator_adapter/deref_impl.hpp	(original)
+++ sandbox/SOC/2009/fusion/boost/fusion/support/detail/iterator_adapter/deref_impl.hpp	2009-07-10 18:07:00 EDT (Fri, 10 Jul 2009)
@@ -10,40 +10,32 @@
 
 //TODO seq_type -> sequence_type
 
-namespace boost { namespace fusion
+namespace boost { namespace fusion { namespace extension
 {
-    template<typename It, typename NewCategory>
-    struct iterator_adapter;
+    template <typename Tag>
+    struct deref_impl;
 
-    struct iterator_adapter_tag;
-
-    namespace extension
+    template <>
+    struct deref_impl<iterator_adapter_tag>
     {
-        template <typename Tag>
-        struct deref_impl;
-
-        template <>
-        struct deref_impl<iterator_adapter_tag>
+        template <typename ItRef>
+        struct apply
         {
-            template <typename ItRef>
-            struct apply
-            {
-                typedef typename
-                    result_of::deref<
-                        typename detail::remove_reference<
-                            ItRef
-                        >::type::iterator_type
-                    >::type
-                type;
+            typedef typename
+                result_of::deref<
+                    typename detail::remove_reference<
+                        ItRef
+                    >::type::iterator_type
+                >::type
+            type;
 
-                static type
-                call(ItRef it)
-                {
-                    return fusion::deref(it.it);
-                }
-            };
+            static type
+            call(ItRef it)
+            {
+                return fusion::deref(it.it);
+            }
         };
-    }
-}}
+    };
+}}}
 
 #endif
Modified: sandbox/SOC/2009/fusion/boost/fusion/support/detail/iterator_adapter/distance_impl.hpp
==============================================================================
--- sandbox/SOC/2009/fusion/boost/fusion/support/detail/iterator_adapter/distance_impl.hpp	(original)
+++ sandbox/SOC/2009/fusion/boost/fusion/support/detail/iterator_adapter/distance_impl.hpp	2009-07-10 18:07:00 EDT (Fri, 10 Jul 2009)
@@ -8,35 +8,30 @@
 
 #include <boost/fusion/iterator/distance.hpp>
 
-namespace boost { namespace fusion
+namespace boost { namespace fusion { namespace extension
 {
-    struct iterator_adapter_tag;
+    template <typename Tag>
+    struct distance_impl;
 
-    namespace extension
+    template <>
+    struct distance_impl<iterator_adapter_tag>
     {
-        template <typename Tag>
-        struct distance_impl;
-
-        template <>
-        struct distance_impl<iterator_adapter_tag>
+        template <typename It1Ref, typename It2Ref>
+        struct apply
         {
-            template <typename It1Ref, typename It2Ref>
-            struct apply
-            {
-                //TODO cschmidt: category assert
-                typedef typename
-                    result_of::distance<
-                        typename detail::remove_reference<
-                            It1Ref
-                        >::type::iterator_type
-                      , typename detail::remove_reference<
-                            It2Ref
-                        >::type::iterator_type
-                    >::type
-                type;
-            };
+            //TODO cschmidt: category assert
+            typedef typename
+                result_of::distance<
+                    typename detail::remove_reference<
+                        It1Ref
+                    >::type::iterator_type
+                  , typename detail::remove_reference<
+                        It2Ref
+                    >::type::iterator_type
+                >::type
+            type;
         };
-    }
-}}
+    };
+}}}
 
 #endif
Modified: sandbox/SOC/2009/fusion/boost/fusion/support/detail/iterator_adapter/equal_to_impl.hpp
==============================================================================
--- sandbox/SOC/2009/fusion/boost/fusion/support/detail/iterator_adapter/equal_to_impl.hpp	(original)
+++ sandbox/SOC/2009/fusion/boost/fusion/support/detail/iterator_adapter/equal_to_impl.hpp	2009-07-10 18:07:00 EDT (Fri, 10 Jul 2009)
@@ -8,32 +8,27 @@
 
 #include <boost/fusion/iterator/equal_to.hpp>
 
-namespace boost { namespace fusion
+namespace boost { namespace fusion { namespace extension
 {
-    struct iterator_adapter_tag;
+    template <typename Tag>
+    struct equal_to_impl;
 
-    namespace extension
+    template <>
+    struct equal_to_impl<iterator_adapter_tag>
     {
-        template <typename Tag>
-        struct equal_to_impl;
-
-        template <>
-        struct equal_to_impl<iterator_adapter_tag>
+        template <typename It1Ref, typename It2Ref>
+        struct apply
+          : result_of::equal_to<
+                typename detail::remove_reference<
+                    It1Ref
+                >::type::iterator_type
+              , typename detail::remove_reference<
+                    It2Ref
+                >::type::iterator_type
+            >
         {
-            template <typename It1Ref, typename It2Ref>
-            struct apply
-              : result_of::equal_to<
-                    typename detail::remove_reference<
-                        It1Ref
-                    >::type::iterator_type
-                  , typename detail::remove_reference<
-                        It2Ref
-                    >::type::iterator_type
-                >
-            {
-            };
         };
-    }
-}}
+    };
+}}}
 
 #endif
Added: sandbox/SOC/2009/fusion/boost/fusion/support/detail/iterator_adapter/iterator_adapter_fwd.hpp
==============================================================================
--- (empty file)
+++ sandbox/SOC/2009/fusion/boost/fusion/support/detail/iterator_adapter/iterator_adapter_fwd.hpp	2009-07-10 18:07:00 EDT (Fri, 10 Jul 2009)
@@ -0,0 +1,17 @@
+// Copyright Christopher Schmidt 2009.
+// Distributed under 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_FUSION_SUPPORT_DETAIL_ITERATOR_ADAPTER_ITERATOR_ADAPTER_FWD_HPP
+#define BOOST_FUSION_SUPPORT_DETAIL_ITERATOR_ADAPTER_ITERATOR_ADAPTER_FWD_HPP
+
+namespace boost { namespace fusion
+{
+    struct iterator_adapter_tag;
+
+    template<typename It, typename NewCategory>
+    struct iterator_adapter;
+}}
+
+#endif
Modified: sandbox/SOC/2009/fusion/boost/fusion/support/detail/iterator_adapter/next_impl.hpp
==============================================================================
--- sandbox/SOC/2009/fusion/boost/fusion/support/detail/iterator_adapter/next_impl.hpp	(original)
+++ sandbox/SOC/2009/fusion/boost/fusion/support/detail/iterator_adapter/next_impl.hpp	2009-07-10 18:07:00 EDT (Fri, 10 Jul 2009)
@@ -8,45 +8,37 @@
 
 #include <boost/fusion/iterator/next.hpp>
 
-namespace boost { namespace fusion
+namespace boost { namespace fusion { namespace extension
 {
-    template<typename It, typename NewCategory>
-    struct iterator_adapter;
+    template <typename Tag>
+    struct next_impl;
 
-    struct iterator_adapter_tag;
-
-    namespace extension
+    template <>
+    struct next_impl<iterator_adapter_tag>
     {
-        template <typename Tag>
-        struct next_impl;
-
-        template <>
-        struct next_impl<iterator_adapter_tag>
+        template <typename ItRef>
+        struct apply
         {
-            template <typename ItRef>
-            struct apply
+            typedef typename
+                detail::remove_reference<ItRef>::type
+            it;
+
+            typedef
+                iterator_adapter<
+                    typename result_of::next<
+                        typename it::iterator_type
+                    >::type
+                  , typename it::category
+                >
+            type;
+
+            static type
+            call(ItRef it)
             {
-                typedef typename
-                    detail::remove_reference<ItRef>::type
-                it;
-
-                typedef
-                    iterator_adapter<
-                        typename result_of::next<
-                            typename it::iterator_type
-                        >::type
-                      , typename it::category
-                    >
-                type;
-
-                static type
-                call(ItRef it)
-                {
-                    return type(fusion::next(it.it),0);
-                }
-            };
+                return type(fusion::next(it.it),0);
+            }
         };
-    }
-}}
+    };
+}}}
 
 #endif
Modified: sandbox/SOC/2009/fusion/boost/fusion/support/detail/iterator_adapter/prior_impl.hpp
==============================================================================
--- sandbox/SOC/2009/fusion/boost/fusion/support/detail/iterator_adapter/prior_impl.hpp	(original)
+++ sandbox/SOC/2009/fusion/boost/fusion/support/detail/iterator_adapter/prior_impl.hpp	2009-07-10 18:07:00 EDT (Fri, 10 Jul 2009)
@@ -8,45 +8,37 @@
 
 #include <boost/fusion/iterator/prior.hpp>
 
-namespace boost { namespace fusion
+namespace boost { namespace fusion { namespace extension
 {
-    template<typename It, typename NewCategory>
-    struct iterator_adapter;
+    template <typename Tag>
+    struct prior_impl;
 
-    struct iterator_adapter_tag;
-
-    namespace extension
+    template <>
+    struct prior_impl<iterator_adapter_tag>
     {
-        template <typename Tag>
-        struct prior_impl;
-
-        template <>
-        struct prior_impl<iterator_adapter_tag>
+        template <typename ItRef>
+        struct apply
         {
-            template <typename ItRef>
-            struct apply
+            typedef typename
+                detail::remove_reference<ItRef>::type
+            it;
+
+            typedef
+                iterator_adapter<
+                    typename result_of::prior<
+                        typename it::iterator_type
+                    >::type
+                  , typename it::category
+                >
+            type;
+
+            static type
+            call(ItRef it)
             {
-                typedef typename
-                    detail::remove_reference<ItRef>::type
-                it;
-
-                typedef
-                    iterator_adapter<
-                        typename result_of::prior<
-                            typename it::iterator_type
-                        >::type
-                      , typename it::category
-                    >
-                type;
-
-                static type
-                call(ItRef it)
-                {
-                    return type(fusion::prior(it.it),0);
-                }
-            };
+                return type(fusion::prior(it.it),0);
+            }
         };
-    }
-}}
+    };
+}}}
 
 #endif
Modified: sandbox/SOC/2009/fusion/boost/fusion/support/detail/iterator_adapter/value_of_impl.hpp
==============================================================================
--- sandbox/SOC/2009/fusion/boost/fusion/support/detail/iterator_adapter/value_of_impl.hpp	(original)
+++ sandbox/SOC/2009/fusion/boost/fusion/support/detail/iterator_adapter/value_of_impl.hpp	2009-07-10 18:07:00 EDT (Fri, 10 Jul 2009)
@@ -8,32 +8,23 @@
 
 #include <boost/fusion/iterator/value_of.hpp>
 
-namespace boost { namespace fusion
+namespace boost { namespace fusion { namespace extension
 {
-    template<typename It, typename NewCategory>
-    struct iterator_adapter;
+    template <typename Tag>
+    struct value_of_impl;
 
-    struct iterator_adapter_tag;
-
-    namespace extension
+    template <>
+    struct value_of_impl<iterator_adapter_tag>
     {
-        template <typename Tag>
-        struct value_of_impl;
-
-        template <>
-        struct value_of_impl<iterator_adapter_tag>
-        {
-            template <typename ItRef>
-            struct apply
-              : result_of::value_of<
-                    typename detail::remove_reference<
-                        ItRef
-                    >::type::iterator_type
-                >
-            {
-            };
-        };
-    }
-}}
+        template <typename ItRef>
+        struct apply
+          : result_of::value_of<
+                typename detail::remove_reference<
+                    ItRef
+                >::type::iterator_type
+            >
+        {};
+    };
+}}}
 
 #endif
Modified: sandbox/SOC/2009/fusion/boost/fusion/support/is_iterator.hpp
==============================================================================
--- sandbox/SOC/2009/fusion/boost/fusion/support/is_iterator.hpp	(original)
+++ sandbox/SOC/2009/fusion/boost/fusion/support/is_iterator.hpp	2009-07-10 18:07:00 EDT (Fri, 10 Jul 2009)
@@ -18,7 +18,7 @@
 
     template <typename T>
     struct is_fusion_iterator
-      : is_base_of<iterator_root, typename detail::remove_reference<T>::type>
+      : is_base_of<iterator_root, typename detail::identity<T>::type>
     {};
 }}
 
Modified: sandbox/SOC/2009/fusion/boost/fusion/support/is_sequence.hpp
==============================================================================
--- sandbox/SOC/2009/fusion/boost/fusion/support/is_sequence.hpp	(original)
+++ sandbox/SOC/2009/fusion/boost/fusion/support/is_sequence.hpp	2009-07-10 18:07:00 EDT (Fri, 10 Jul 2009)
@@ -8,24 +8,24 @@
 #ifndef BOOST_FUSION_SUPPORT_IS_SEQUENCE_HPP
 #define BOOST_FUSION_SUPPORT_IS_SEQUENCE_HPP
 
-#include <boost/fusion/support/sequence_base.hpp>
+#include <boost/fusion/support/is_view.hpp>
 #include <boost/fusion/support/tag_of.hpp>
 #include <boost/fusion/support/ref.hpp>
 
-#include <boost/type_traits/is_base_of.hpp>
+#include <boost/mpl/not.hpp>
 
 namespace boost { namespace fusion
 {
     namespace extension
     {
-        template <typename T>
+        template <typename Tag>
         struct is_sequence_impl
         {
-            template <typename Seq>
+            template <typename SeqRef>
             struct apply
               : is_base_of<
                     sequence_root
-                  , typename detail::remove_reference<Seq>::type
+                  , typename detail::identity<SeqRef>::type
                 >
             {};
         };
@@ -36,7 +36,7 @@
         template <typename T>
         struct is_sequence
           : extension::is_sequence_impl<typename traits::tag_of<T>::type>::
-                template apply<T>
+                template apply<typename detail::add_lref<T>::type>
         {};
     }
 }}
Modified: sandbox/SOC/2009/fusion/boost/fusion/support/is_view.hpp
==============================================================================
--- sandbox/SOC/2009/fusion/boost/fusion/support/is_view.hpp	(original)
+++ sandbox/SOC/2009/fusion/boost/fusion/support/is_view.hpp	2009-07-10 18:07:00 EDT (Fri, 10 Jul 2009)
@@ -13,9 +13,6 @@
 
 namespace boost { namespace fusion
 {
-    // Special tags:
-    struct sequence_facade_tag;
-
     namespace extension
     {
         template<typename Tag>
@@ -26,17 +23,6 @@
               :  detail::remove_reference<SeqRef>::type::is_view
             {};
         };
-
-        /*
-        template <>
-        struct is_view_impl<sequence_facade_tag>
-        {
-            template <typename SeqRef>
-            struct apply
-                : detail::remove_reference<SeqRef>::type::is_view
-            {};
-        };
-        */
     }
 
     namespace traits
Modified: sandbox/SOC/2009/fusion/boost/fusion/support/iterator_adapter.hpp
==============================================================================
--- sandbox/SOC/2009/fusion/boost/fusion/support/iterator_adapter.hpp	(original)
+++ sandbox/SOC/2009/fusion/boost/fusion/support/iterator_adapter.hpp	2009-07-10 18:07:00 EDT (Fri, 10 Jul 2009)
@@ -9,6 +9,7 @@
 #include <boost/fusion/support/ref.hpp>
 #include <boost/fusion/support/iterator_base.hpp>
 
+#include <boost/fusion/support/detail/iterator_adapter/iterator_adapter_fwd.hpp>
 #include <boost/fusion/support/detail/iterator_adapter/deref_impl.hpp>
 #include <boost/fusion/support/detail/iterator_adapter/value_of_impl.hpp>
 #include <boost/fusion/support/detail/iterator_adapter/next_impl.hpp>
Modified: sandbox/SOC/2009/fusion/boost/fusion/support/ref.hpp
==============================================================================
--- sandbox/SOC/2009/fusion/boost/fusion/support/ref.hpp	(original)
+++ sandbox/SOC/2009/fusion/boost/fusion/support/ref.hpp	2009-07-10 18:07:00 EDT (Fri, 10 Jul 2009)
@@ -24,8 +24,10 @@
 #include <boost/type_traits/is_class.hpp>
 #include <boost/type_traits/is_array.hpp>
 #include <boost/type_traits/is_const.hpp>
+#include <boost/type_traits/is_volatile.hpp>
 #include <boost/type_traits/is_reference.hpp>
 #include <boost/type_traits/add_const.hpp>
+#include <boost/type_traits/add_volatile.hpp>
 #include <boost/type_traits/remove_const.hpp>
 #include <boost/type_traits/remove_cv.hpp>
 
@@ -166,29 +168,26 @@
         typedef typename boost::remove_cv<T>::type const& type;
     };
 
-    //TODO cschmidt: volatile support
-#ifdef BOOST_NO_RVALUE_REFERENCES
-    template <typename,typename Type>
-    struct result_of_forward_as
-    {
-        typedef typename
-            mpl::if_<is_const<typename remove_reference<TestType>::type>
-                   , typename add_const<Type>::type
-                   , Type
-            >::type&
-        type;
-    };
-#else
     template <typename TestType,typename Type>
-    struct result_of_forward_as
+    struct forward_as
     {
         typedef typename
             mpl::if_<is_const<typename remove_reference<TestType>::type>
                    , typename add_const<Type>::type
                    , Type
             >::type
+        const_type;
+
+        typedef typename
+            mpl::if_<is_volatile<typename remove_reference<TestType>::type>
+                   , typename add_volatile<const_type>::type
+                   , const_type
+            >::type
         real_type;
 
+#ifdef BOOST_NO_RVALUE_REFERENCES
+        typedef real_type& type;
+#else
         typedef typename
             mpl::eval_if<
                 //8.5.3p5...
@@ -206,36 +205,8 @@
                 mpl::identity<real_type>
             >::type
         type;
-    };
-
-    /*template <typename TestType,typename Type>
-    typename result_of_forward_as<TestType,Type>::type
-    forward_as(typename mpl::identity<Type>::type&& type)
-    {
-        return type;
-    }
-
-    template <typename TestType,typename Type>
-    typename result_of_forward_as<TestType,Type const&&>::type
-    forward_as(typename mpl::identity<Type>::type const&& type)
-    {
-        return type;
-    }
-
-    template <typename TestType,typename Type>
-    typename result_of_forward_as<TestType,Type volatile&&>::type
-    forward_as(typename mpl::identity<Type>::type volatile&& type)
-    {
-        return type;
-    }
-
-    template <typename TestType,typename Type>
-    typename result_of_forward_as<TestType,Type const volatile&&>::type
-    forward_as(typename mpl::identity<Type>::type const volatile&& type)
-    {
-        return type;
-    }*/
 #endif
+    };
 }}}
 
 #endif
Modified: sandbox/SOC/2009/fusion/boost/fusion/support/tag_of.hpp
==============================================================================
--- sandbox/SOC/2009/fusion/boost/fusion/support/tag_of.hpp	(original)
+++ sandbox/SOC/2009/fusion/boost/fusion/support/tag_of.hpp	2009-07-10 18:07:00 EDT (Fri, 10 Jul 2009)
@@ -9,15 +9,19 @@
 #define BOOST_FUSION_SUPPORT_TAG_OF_HPP
 
 #include <boost/fusion/support/tag_of_fwd.hpp>
-#include <boost/fusion/support/detail/is_mpl_sequence.hpp>
 #include <boost/fusion/support/ref.hpp>
 
+#include <boost/mpl/is_sequence.hpp>
 #include <boost/mpl/eval_if.hpp>
 #include <boost/mpl/if.hpp>
 #include <boost/mpl/has_xxx.hpp>
+#include <boost/mpl/and.hpp>
+#include <boost/mpl/not.hpp>
+#include <boost/type_traits/is_base_of.hpp>
 
 namespace boost { namespace fusion
 {
+    struct sequence_root;
     struct mpl_sequence_tag;
     struct mpl_iterator_tag;
 
@@ -30,6 +34,14 @@
         {
             typedef typename Seq::fusion_tag type;
         };
+
+        template <typename Seq>
+        struct is_mpl_sequence
+          : mpl::and_<
+                mpl::not_<is_base_of<sequence_root, Seq> >
+              , mpl::is_sequence<Seq>
+            >
+        {};
     }
 
     namespace traits
Modified: sandbox/SOC/2009/fusion/boost/fusion/tuple/tuple_tie.hpp
==============================================================================
--- sandbox/SOC/2009/fusion/boost/fusion/tuple/tuple_tie.hpp	(original)
+++ sandbox/SOC/2009/fusion/boost/fusion/tuple/tuple_tie.hpp	2009-07-10 18:07:00 EDT (Fri, 10 Jul 2009)
@@ -6,9 +6,10 @@
 #ifndef BOOST_FUSION_TUPLE_TUPLE_TIE_HPP
 #define BOOST_FUSION_TUPLE_TUPLE_TIE_HPP
 
-#include <boost/config.hpp>
 #include <boost/fusion/container/generation/ignore.hpp>
 
+#include <boost/config.hpp>
+
 #ifdef BOOST_NO_VARIADIC_TEMPLATES
 #   include <boost/fusion/tuple/detail/pp/tuple_tie.hpp>
 #else
Modified: sandbox/SOC/2009/fusion/boost/fusion/view/filter_view.hpp
==============================================================================
--- sandbox/SOC/2009/fusion/boost/fusion/view/filter_view.hpp	(original)
+++ sandbox/SOC/2009/fusion/boost/fusion/view/filter_view.hpp	2009-07-10 18:07:00 EDT (Fri, 10 Jul 2009)
@@ -9,6 +9,5 @@
 #define BOOST_FUSION_VIEW_FILTER_VIEW_HPP
 
 #include <boost/fusion/view/filter_view/filter_view.hpp>
-#include <boost/fusion/view/filter_view/filter_view_iterator.hpp>
 
 #endif
Modified: sandbox/SOC/2009/fusion/boost/fusion/view/filter_view/detail/begin_impl.hpp
==============================================================================
--- sandbox/SOC/2009/fusion/boost/fusion/view/filter_view/detail/begin_impl.hpp	(original)
+++ sandbox/SOC/2009/fusion/boost/fusion/view/filter_view/detail/begin_impl.hpp	2009-07-10 18:07:00 EDT (Fri, 10 Jul 2009)
@@ -11,42 +11,34 @@
 #include <boost/fusion/sequence/intrinsic/begin.hpp>
 #include <boost/fusion/sequence/intrinsic/end.hpp>
 
-namespace boost { namespace fusion
+namespace boost { namespace fusion { namespace extension
 {
-    struct filter_view_tag;
+    template <typename Tag>
+    struct begin_impl;
 
-    template <typename First, typename Last, typename Pred>
-    struct filter_iterator;
-
-    namespace extension
+    template <>
+    struct begin_impl<filter_view_tag>
     {
-        template <typename Tag>
-        struct begin_impl;
-
-        template <>
-        struct begin_impl<filter_view_tag>
+        template <typename SeqRef>
+        struct apply
         {
-            template <typename SeqRef>
-            struct apply
-            {
-                typedef typename detail::remove_reference<SeqRef>::type seq;
+            typedef typename detail::remove_reference<SeqRef>::type seq;
 
-                typedef
-                    filter_iterator<
-                        typename result_of::begin<typename seq::seq_type>::type
-                      , typename result_of::end<typename seq::seq_type>::type
-                      , typename seq::pred_type
-                    >
-                type;
+            typedef
+                filter_iterator<
+                    typename result_of::begin<typename seq::seq_type>::type
+                  , typename result_of::end<typename seq::seq_type>::type
+                  , typename seq::pred_type
+                >
+            type;
 
-                static type
-                call(SeqRef seq)
-                {
-                    return type(fusion::begin(seq.seq.get()),0);
-                }
-            };
+            static type
+            call(SeqRef seq)
+            {
+                return type(fusion::begin(seq.seq.get()),0);
+            }
         };
-    }
-}}
+    };
+}}}
 
 #endif
Modified: sandbox/SOC/2009/fusion/boost/fusion/view/filter_view/detail/deref_impl.hpp
==============================================================================
--- sandbox/SOC/2009/fusion/boost/fusion/view/filter_view/detail/deref_impl.hpp	(original)
+++ sandbox/SOC/2009/fusion/boost/fusion/view/filter_view/detail/deref_impl.hpp	2009-07-10 18:07:00 EDT (Fri, 10 Jul 2009)
@@ -10,36 +10,31 @@
 
 #include <boost/fusion/iterator/deref.hpp>
 
-namespace boost { namespace fusion
+namespace boost { namespace fusion { namespace extension
 {
-    struct filter_view_iterator_tag;
+    template <typename Tag>
+    struct deref_impl;
 
-    namespace extension
+    template <>
+    struct deref_impl<filter_view_iterator_tag>
     {
-        template <typename Tag>
-        struct deref_impl;
-
-        template <>
-        struct deref_impl<filter_view_iterator_tag>
+        template<typename ItRef>
+        struct apply
         {
-            template<typename ItRef>
-            struct apply
-            {
-                typedef typename
-                    result_of::deref<
-                        typename detail::remove_reference<
-                            ItRef
-                        >::type::first_type
-                    >::type
-                type;
+            typedef typename
+                result_of::deref<
+                    typename detail::remove_reference<
+                        ItRef
+                    >::type::first_type
+                >::type
+            type;
 
-                static type call(ItRef it)
-                {
-                    return fusion::deref(it.first);
-                }
-            };
+            static type call(ItRef it)
+            {
+                return fusion::deref(it.first);
+            }
         };
-    }
-}}
+    };
+}}}
 
 #endif
Modified: sandbox/SOC/2009/fusion/boost/fusion/view/filter_view/detail/end_impl.hpp
==============================================================================
--- sandbox/SOC/2009/fusion/boost/fusion/view/filter_view/detail/end_impl.hpp	(original)
+++ sandbox/SOC/2009/fusion/boost/fusion/view/filter_view/detail/end_impl.hpp	2009-07-10 18:07:00 EDT (Fri, 10 Jul 2009)
@@ -10,42 +10,34 @@
 
 #include <boost/fusion/sequence/intrinsic/end.hpp>
 
-namespace boost { namespace fusion
+namespace boost { namespace fusion { namespace extension
 {
-    struct filter_view_tag;
+    template <typename Tag>
+    struct end_impl;
 
-    template <typename First, typename Last, typename Pred>
-    struct filter_iterator;
-
-    namespace extension
+    template <>
+    struct end_impl<filter_view_tag>
     {
-        template <typename Tag>
-        struct end_impl;
-
-        template <>
-        struct end_impl<filter_view_tag>
+        template <typename SeqRef>
+        struct apply
         {
-            template <typename SeqRef>
-            struct apply
-            {
-                typedef typename detail::remove_reference<SeqRef>::type seq;
+            typedef typename detail::remove_reference<SeqRef>::type seq;
 
-                typedef
-                    filter_iterator<
-                        typename result_of::end<typename seq::seq_type>::type
-                      , typename result_of::end<typename seq::seq_type>::type
-                      , typename seq::pred_type
-                    >
-                type;
-
-                static type
-                call(SeqRef seq)
-                {
-                    return type(fusion::end(seq.seq.get()),0);
-                }
-            };
+            typedef
+                filter_iterator<
+                    typename result_of::end<typename seq::seq_type>::type
+                  , typename result_of::end<typename seq::seq_type>::type
+                  , typename seq::pred_type
+                >
+            type;
+
+            static type
+            call(SeqRef seq)
+            {
+                return type(fusion::end(seq.seq.get()),0);
+            }
         };
-    }
-}}
+    };
+}}}
 
 #endif
Modified: sandbox/SOC/2009/fusion/boost/fusion/view/filter_view/detail/equal_to_impl.hpp
==============================================================================
--- sandbox/SOC/2009/fusion/boost/fusion/view/filter_view/detail/equal_to_impl.hpp	(original)
+++ sandbox/SOC/2009/fusion/boost/fusion/view/filter_view/detail/equal_to_impl.hpp	2009-07-10 18:07:00 EDT (Fri, 10 Jul 2009)
@@ -9,27 +9,22 @@
 #ifndef BOOST_FUSION_VIEW_FILTER_VIEW_DETAIL_EQUAL_TO_IMPL_HPP
 #define BOOST_FUSION_VIEW_FILTER_VIEW_DETAIL_EQUAL_TO_IMPL_HPP
 
-namespace boost { namespace fusion
+namespace boost { namespace fusion { namespace extension
 {
-    struct filter_view_iterator_tag;
+    template<typename Tag>
+    struct equal_to_impl;
 
-    namespace extension
+    template<>
+    struct equal_to_impl<filter_view_iterator_tag>
     {
-        template<typename Tag>
-        struct equal_to_impl;
-
-        template<>
-        struct equal_to_impl<filter_view_iterator_tag>
-        {
-            template<typename It1Ref, typename It2Ref>
-            struct apply
-              : result_of::equal_to<
-                    typename detail::remove_reference<It1Ref>::type::first_type
-                  , typename detail::remove_reference<It2Ref>::type::first_type
-                >
-            {};
-        };
-    }
-}}
+        template<typename It1Ref, typename It2Ref>
+        struct apply
+          : result_of::equal_to<
+                typename detail::remove_reference<It1Ref>::type::first_type
+              , typename detail::remove_reference<It2Ref>::type::first_type
+            >
+        {};
+    };
+}}}
 
 #endif
Added: sandbox/SOC/2009/fusion/boost/fusion/view/filter_view/detail/filter_view_fwd.hpp
==============================================================================
--- (empty file)
+++ sandbox/SOC/2009/fusion/boost/fusion/view/filter_view/detail/filter_view_fwd.hpp	2009-07-10 18:07:00 EDT (Fri, 10 Jul 2009)
@@ -0,0 +1,14 @@
+// Copyright Christopher Schmidt 2009.
+// Distributed under 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_FUSION_VIEW_FILTER_VIEW_DETAIL_FILTER_VIEW_FWD_HPP
+#define BOOST_FUSION_VIEW_FILTER_VIEW_DETAIL_FILTER_VIEW_FWD_HPP
+
+namespace boost { namespace fusion
+{
+    struct filter_view_tag;
+}}
+
+#endif
Added: sandbox/SOC/2009/fusion/boost/fusion/view/filter_view/detail/filter_view_iterator.hpp
==============================================================================
--- (empty file)
+++ sandbox/SOC/2009/fusion/boost/fusion/view/filter_view/detail/filter_view_iterator.hpp	2009-07-10 18:07:00 EDT (Fri, 10 Jul 2009)
@@ -0,0 +1,51 @@
+/*=============================================================================
+    Copyright (c) 2001-2006 Joel de Guzman
+
+    Distributed under 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_FUSION_VIEW_FILTER_VIEW_DETAIL_FILTER_VIEW_ITERATOR_HPP
+#define BOOST_FUSION_VIEW_FILTER_VIEW_DETAIL_FILTER_VIEW_ITERATOR_HPP
+
+#include <boost/fusion/support/iterator_base.hpp>
+#include <boost/fusion/algorithm/query/detail/find_if.hpp>
+
+namespace boost { namespace fusion
+{
+    struct filter_view_iterator_tag;
+    struct forward_traversal_tag;
+
+    template <typename First, typename Last, typename Pred>
+    struct filter_iterator
+      : iterator_base<filter_iterator<First, Last, Pred> >
+    {
+        typedef filter_view_iterator_tag fusion_tag;
+        typedef forward_traversal_tag category;
+        typedef detail::static_find_if<First, Last, Pred> filter;
+        typedef typename filter::type first_type;
+        typedef Last last_type;
+        typedef Pred pred_type;
+
+        template<typename OtherIt>
+        filter_iterator(BOOST_FUSION_R_ELSE_CLREF(OtherIt) it)
+          : first(BOOST_FUSION_FORWARD(OtherIt,it).first)
+        {}
+
+        filter_iterator(First const& first,int)
+          : first(filter::call(first))
+        {}
+
+        template<typename OtherIt>
+        filter_iterator&
+        operator=(BOOST_FUSION_R_ELSE_CLREF(OtherIt) it)
+        {
+            first=BOOST_FUSION_FORWARD(OtherIt,it).first;
+            return *this;
+        }
+
+        first_type first;
+    };
+}}
+
+#endif
Modified: sandbox/SOC/2009/fusion/boost/fusion/view/filter_view/detail/next_impl.hpp
==============================================================================
--- sandbox/SOC/2009/fusion/boost/fusion/view/filter_view/detail/next_impl.hpp	(original)
+++ sandbox/SOC/2009/fusion/boost/fusion/view/filter_view/detail/next_impl.hpp	2009-07-10 18:07:00 EDT (Fri, 10 Jul 2009)
@@ -13,49 +13,41 @@
 #include <boost/mpl/eval_if.hpp>
 #include <boost/mpl/identity.hpp>
 
-namespace boost { namespace fusion
+namespace boost { namespace fusion { namespace extension
 {
-    struct filter_view_iterator_tag;
+    template <typename Tag>
+    struct next_impl;
 
-    template <typename First, typename Last, typename Pred>
-    struct filter_iterator;
-
-    namespace extension
+    template <>
+    struct next_impl<filter_view_iterator_tag>
     {
-        template <typename Tag>
-        struct next_impl;
-
-        template <>
-        struct next_impl<filter_view_iterator_tag>
+        template <typename ItRef>
+        struct apply
         {
-            template <typename ItRef>
-            struct apply
-            {
-                typedef typename detail::remove_reference<ItRef>::type it;
-                typedef typename
-                    detail::static_find_if<
-                        typename result_of::next<typename it::first_type>::type
-                      , typename it::last_type
-                      , typename it::pred_type
-                    >
-                filter;
+            typedef typename detail::remove_reference<ItRef>::type it;
+            typedef typename
+                detail::static_find_if<
+                    typename result_of::next<typename it::first_type>::type
+                  , typename it::last_type
+                  , typename it::pred_type
+                >
+            filter;
+
+            typedef
+                filter_iterator<
+                    typename filter::type
+                  , typename it::last_type
+                  , typename it::pred_type
+                >
+            type;
 
-                typedef
-                    filter_iterator<
-                        typename filter::type
-                      , typename it::last_type
-                      , typename it::pred_type
-                    >
-                type;
-
-                static type
-                call(ItRef it)
-                {
-                    return type(filter::call(it.first),0);
-                }
-            };
+            static type
+            call(ItRef it)
+            {
+                return type(filter::call(it.first),0);
+            }
         };
-    }
-}}
+    };
+}}}
 
 #endif
Modified: sandbox/SOC/2009/fusion/boost/fusion/view/filter_view/detail/size_impl.hpp
==============================================================================
--- sandbox/SOC/2009/fusion/boost/fusion/view/filter_view/detail/size_impl.hpp	(original)
+++ sandbox/SOC/2009/fusion/boost/fusion/view/filter_view/detail/size_impl.hpp	2009-07-10 18:07:00 EDT (Fri, 10 Jul 2009)
@@ -12,27 +12,22 @@
 #include <boost/fusion/sequence/intrinsic/begin.hpp>
 #include <boost/fusion/sequence/intrinsic/end.hpp>
 
-namespace boost { namespace fusion
+namespace boost { namespace fusion { namespace extension
 {
-    struct filter_view_tag;
+    template <typename Tag>
+    struct size_impl;
 
-    namespace extension
+    template <>
+    struct size_impl<filter_view_tag>
     {
-        template <typename Tag>
-        struct size_impl;
-
-        template <>
-        struct size_impl<filter_view_tag>
-        {
-            template <typename SeqRef>
-            struct apply
-              : result_of::distance<
-                    typename result_of::begin<SeqRef>::type
-                  , typename result_of::end<SeqRef>::type
-                >
-            {};
-        };
-    }
-}}
+        template <typename SeqRef>
+        struct apply
+          : result_of::distance<
+                typename result_of::begin<SeqRef>::type
+              , typename result_of::end<SeqRef>::type
+            >
+        {};
+    };
+}}}
 
 #endif
Modified: sandbox/SOC/2009/fusion/boost/fusion/view/filter_view/detail/value_of_impl.hpp
==============================================================================
--- sandbox/SOC/2009/fusion/boost/fusion/view/filter_view/detail/value_of_impl.hpp	(original)
+++ sandbox/SOC/2009/fusion/boost/fusion/view/filter_view/detail/value_of_impl.hpp	2009-07-10 18:07:00 EDT (Fri, 10 Jul 2009)
@@ -10,27 +10,21 @@
 
 #include <boost/fusion/iterator/value_of.hpp>
 
-namespace boost { namespace fusion
+namespace boost { namespace fusion { namespace extension
 {
-    struct filter_view_iterator_tag;
+    template <typename Tag>
+    struct value_of_impl;
 
-    namespace extension
+    template <>
+    struct value_of_impl<filter_view_iterator_tag>
     {
-        template <typename Tag>
-        struct value_of_impl;
-
-        template <>
-        struct value_of_impl<filter_view_iterator_tag>
-        {
-            template <typename ItRef>
-            struct apply
-              : result_of::value_of<
-                    typename detail::remove_reference<ItRef>::type::first_type
-                >
-            {
-            };
-        };
-    }
-}}
+        template <typename ItRef>
+        struct apply
+          : result_of::value_of<
+                typename detail::remove_reference<ItRef>::type::first_type
+            >
+        {};
+    };
+}}}
 
 #endif
Modified: sandbox/SOC/2009/fusion/boost/fusion/view/filter_view/filter_view.hpp
==============================================================================
--- sandbox/SOC/2009/fusion/boost/fusion/view/filter_view/filter_view.hpp	(original)
+++ sandbox/SOC/2009/fusion/boost/fusion/view/filter_view/filter_view.hpp	2009-07-10 18:07:00 EDT (Fri, 10 Jul 2009)
@@ -17,14 +17,19 @@
 
 #include <boost/mpl/bool.hpp>
 
-#include <boost/fusion/view/filter_view/filter_view_iterator.hpp>
+#include <boost/fusion/view/filter_view/detail/filter_view_fwd.hpp>
+#include <boost/fusion/view/filter_view/detail/size_impl.hpp>
+
+#include <boost/fusion/view/filter_view/detail/filter_view_iterator.hpp>
 #include <boost/fusion/view/filter_view/detail/begin_impl.hpp>
 #include <boost/fusion/view/filter_view/detail/end_impl.hpp>
-#include <boost/fusion/view/filter_view/detail/size_impl.hpp>
+#include <boost/fusion/view/filter_view/detail/deref_impl.hpp>
+#include <boost/fusion/view/filter_view/detail/next_impl.hpp>
+#include <boost/fusion/view/filter_view/detail/value_of_impl.hpp>
+#include <boost/fusion/view/filter_view/detail/equal_to_impl.hpp>
 
 namespace boost { namespace fusion
 {
-    struct filter_view_tag;
     struct forward_traversal_tag;
     struct fusion_sequence_tag;
 
Deleted: sandbox/SOC/2009/fusion/boost/fusion/view/filter_view/filter_view_iterator.hpp
==============================================================================
--- sandbox/SOC/2009/fusion/boost/fusion/view/filter_view/filter_view_iterator.hpp	2009-07-10 18:07:00 EDT (Fri, 10 Jul 2009)
+++ (empty file)
@@ -1,57 +0,0 @@
-/*=============================================================================
-    Copyright (c) 2001-2006 Joel de Guzman
-
-    Distributed under 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_FUSION_VIEW_FILTER_VIEW_FILTER_VIEW_ITERATOR_HPP
-#define BOOST_FUSION_VIEW_FILTER_VIEW_FILTER_VIEW_ITERATOR_HPP
-
-#include <boost/fusion/support/ref.hpp>
-
-#include <boost/fusion/support/iterator_base.hpp>
-#include <boost/fusion/view/filter_view/detail/deref_impl.hpp>
-#include <boost/fusion/view/filter_view/detail/next_impl.hpp>
-#include <boost/fusion/view/filter_view/detail/value_of_impl.hpp>
-#include <boost/fusion/view/filter_view/detail/equal_to_impl.hpp>
-#include <boost/fusion/algorithm/query/detail/find_if.hpp>
-
-namespace boost { namespace fusion
-{
-    struct filter_view_iterator_tag;
-    struct forward_traversal_tag;
-
-    template <typename First, typename Last, typename Pred>
-    struct filter_iterator
-      : iterator_base<filter_iterator<First, Last, Pred> >
-    {
-        typedef filter_view_iterator_tag fusion_tag;
-        typedef forward_traversal_tag category;
-        typedef detail::static_find_if<First, Last, Pred> filter;
-        typedef typename filter::type first_type;
-        typedef Last last_type;
-        typedef Pred pred_type;
-
-        template<typename OtherIt>
-        filter_iterator(BOOST_FUSION_R_ELSE_CLREF(OtherIt) it)
-          : first(BOOST_FUSION_FORWARD(OtherIt,it).first)
-        {}
-
-        filter_iterator(First const& first,int)
-          : first(filter::call(first))
-        {}
-
-        template<typename OtherIt>
-        filter_iterator&
-        operator=(BOOST_FUSION_R_ELSE_CLREF(OtherIt) it)
-        {
-            first=BOOST_FUSION_FORWARD(OtherIt,it).first;
-            return *this;
-        }
-
-        first_type first;
-    };
-}}
-
-#endif
Modified: sandbox/SOC/2009/fusion/boost/fusion/view/iterator_range/detail/at_impl.hpp
==============================================================================
--- sandbox/SOC/2009/fusion/boost/fusion/view/iterator_range/detail/at_impl.hpp	(original)
+++ sandbox/SOC/2009/fusion/boost/fusion/view/iterator_range/detail/at_impl.hpp	2009-07-10 18:07:00 EDT (Fri, 10 Jul 2009)
@@ -11,35 +11,30 @@
 #include <boost/fusion/iterator/advance.hpp>
 #include <boost/fusion/iterator/deref.hpp>
 
-namespace boost { namespace fusion
+namespace boost { namespace fusion { namespace extension
 {
-    struct iterator_range_tag;
+    template <typename Tag>
+    struct at_impl;
 
-    namespace extension
+    template <>
+    struct at_impl<iterator_range_tag>
     {
-        template <typename Tag>
-        struct at_impl;
-
-        template <>
-        struct at_impl<iterator_range_tag>
+        template <typename SeqRef, typename N>
+        struct apply
         {
-            template <typename SeqRef, typename N>
-            struct apply
-            {
-                typedef typename
-                    detail::remove_reference<SeqRef>::type::begin_type
-                begin_type;
-                typedef typename result_of::advance<begin_type,N>::type pos;
-                typedef typename result_of::deref<pos>::type type;
+            typedef typename
+                detail::remove_reference<SeqRef>::type::begin_type
+            begin_type;
+            typedef typename result_of::advance<begin_type,N>::type pos;
+            typedef typename result_of::deref<pos>::type type;
 
-                static type
-                call(SeqRef seq)
-                {
-                    return fusion::deref(advance<N>(seq.first));
-                }
-            };
+            static type
+            call(SeqRef seq)
+            {
+                return fusion::deref(advance<N>(seq.first));
+            }
         };
-    }
-}}
+    };
+}}}
 
 #endif
Modified: sandbox/SOC/2009/fusion/boost/fusion/view/iterator_range/detail/begin_impl.hpp
==============================================================================
--- sandbox/SOC/2009/fusion/boost/fusion/view/iterator_range/detail/begin_impl.hpp	(original)
+++ sandbox/SOC/2009/fusion/boost/fusion/view/iterator_range/detail/begin_impl.hpp	2009-07-10 18:07:00 EDT (Fri, 10 Jul 2009)
@@ -8,33 +8,28 @@
 #ifndef BOOST_FUSION_VIEW_ITERATOR_RANGE_DETAIL_BEGIN_IMPL_HPP
 #define BOOST_FUSION_VIEW_ITERATOR_RANGE_DETAIL_BEGIN_IMPL_HPP
 
-namespace boost { namespace fusion
+namespace boost { namespace fusion { namespace extension
 {
-    struct iterator_range_tag;
+    template <typename Tag>
+    struct begin_impl;
 
-    namespace extension
+    template <>
+    struct begin_impl<iterator_range_tag>
     {
-        template <typename Tag>
-        struct begin_impl;
-
-        template <>
-        struct begin_impl<iterator_range_tag>
+        template <typename SeqRef>
+        struct apply
         {
-            template <typename SeqRef>
-            struct apply
-            {
-                typedef typename
-                    detail::remove_reference<SeqRef>::type::begin_type
-                type;
+            typedef typename
+                detail::remove_reference<SeqRef>::type::begin_type
+            type;
 
-                static type
-                call(SeqRef seq)
-                {
-                    return seq.first;
-                }
-            };
+            static type
+            call(SeqRef seq)
+            {
+                return seq.first;
+            }
         };
-    }
-}}
+    };
+}}}
 
 #endif
Modified: sandbox/SOC/2009/fusion/boost/fusion/view/iterator_range/detail/end_impl.hpp
==============================================================================
--- sandbox/SOC/2009/fusion/boost/fusion/view/iterator_range/detail/end_impl.hpp	(original)
+++ sandbox/SOC/2009/fusion/boost/fusion/view/iterator_range/detail/end_impl.hpp	2009-07-10 18:07:00 EDT (Fri, 10 Jul 2009)
@@ -8,33 +8,28 @@
 #ifndef BOOST_FUSION_VIEW_ITERATOR_RANGE_DETAIL_END_IMPL_HPP
 #define BOOST_FUSION_VIEW_ITERATOR_RANGE_DETAIL_END_IMPL_HPP
 
-namespace boost { namespace fusion
+namespace boost { namespace fusion { namespace extension
 {
-    struct iterator_range_tag;
+    template <typename Tag>
+    struct end_impl;
 
-    namespace extension
+    template <>
+    struct end_impl<iterator_range_tag>
     {
-        template <typename Tag>
-        struct end_impl;
-
-        template <>
-        struct end_impl<iterator_range_tag>
+        template <typename SeqRef>
+        struct apply
         {
-            template <typename SeqRef>
-            struct apply
-            {
-                typedef typename
-                    detail::remove_reference<SeqRef>::type::end_type
-                type;
+            typedef typename
+                detail::remove_reference<SeqRef>::type::end_type
+            type;
 
-                static type
-                call(SeqRef seq)
-                {
-                    return seq.last;
-                }
-            };
+            static type
+            call(SeqRef seq)
+            {
+                return seq.last;
+            }
         };
-    }
-}}
+    };
+}}}
 
 #endif
Added: sandbox/SOC/2009/fusion/boost/fusion/view/iterator_range/detail/iterator_range_fwd.hpp
==============================================================================
--- (empty file)
+++ sandbox/SOC/2009/fusion/boost/fusion/view/iterator_range/detail/iterator_range_fwd.hpp	2009-07-10 18:07:00 EDT (Fri, 10 Jul 2009)
@@ -0,0 +1,14 @@
+// Copyright Christopher Schmidt 2009.
+// Distributed under 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_FUSION_VIEW_ITERATOR_RANGE_DETAIL_ITERATOR_RANGE_FWD_HPP
+#define BOOST_FUSION_VIEW_ITERATOR_RANGE_DETAIL_ITERATOR_RANGE_FWD_HPP
+
+namespace boost { namespace fusion
+{
+    struct iterator_range_tag;
+}}
+
+#endif
Modified: sandbox/SOC/2009/fusion/boost/fusion/view/iterator_range/detail/value_at_impl.hpp
==============================================================================
--- sandbox/SOC/2009/fusion/boost/fusion/view/iterator_range/detail/value_at_impl.hpp	(original)
+++ sandbox/SOC/2009/fusion/boost/fusion/view/iterator_range/detail/value_at_impl.hpp	2009-07-10 18:07:00 EDT (Fri, 10 Jul 2009)
@@ -11,32 +11,27 @@
 #include <boost/fusion/iterator/advance.hpp>
 #include <boost/fusion/iterator/value_of.hpp>
 
-namespace boost { namespace fusion
+namespace boost { namespace fusion { namespace extension
 {
-    struct iterator_range_tag;
+    template <typename Tag>
+    struct value_at_impl;
 
-    namespace extension
+    template <>
+    struct value_at_impl<iterator_range_tag>
     {
-        template <typename Tag>
-        struct value_at_impl;
-
-        template <>
-        struct value_at_impl<iterator_range_tag>
+        template <typename SeqRef, typename N>
+        struct apply
         {
-            template <typename SeqRef, typename N>
-            struct apply
-            {
-                typedef typename
-                    detail::remove_reference<SeqRef>::type::begin_type
-                begin_type;
-                typedef typename
-                    result_of::advance<begin_type,N>::type
-                pos;
+            typedef typename
+                detail::remove_reference<SeqRef>::type::begin_type
+            begin_type;
+            typedef typename
+                result_of::advance<begin_type,N>::type
+            pos;
 
-                typedef typename result_of::value_of<pos>::type type;
-            };
+            typedef typename result_of::value_of<pos>::type type;
         };
-    }
-}}
+    };
+}}}
 
 #endif
Modified: sandbox/SOC/2009/fusion/boost/fusion/view/iterator_range/iterator_range.hpp
==============================================================================
--- sandbox/SOC/2009/fusion/boost/fusion/view/iterator_range/iterator_range.hpp	(original)
+++ sandbox/SOC/2009/fusion/boost/fusion/view/iterator_range/iterator_range.hpp	2009-07-10 18:07:00 EDT (Fri, 10 Jul 2009)
@@ -15,6 +15,7 @@
 
 #include <boost/mpl/bool.hpp>
 
+#include <boost/fusion/view/iterator_range/detail/iterator_range_fwd.hpp>
 #include <boost/fusion/view/iterator_range/detail/begin_impl.hpp>
 #include <boost/fusion/view/iterator_range/detail/end_impl.hpp>
 #include <boost/fusion/view/iterator_range/detail/at_impl.hpp>
Modified: sandbox/SOC/2009/fusion/boost/fusion/view/joint_view.hpp
==============================================================================
--- sandbox/SOC/2009/fusion/boost/fusion/view/joint_view.hpp	(original)
+++ sandbox/SOC/2009/fusion/boost/fusion/view/joint_view.hpp	2009-07-10 18:07:00 EDT (Fri, 10 Jul 2009)
@@ -9,6 +9,5 @@
 #define BOOST_FUSION_VIEW_JOINT_VIEW_HPP
 
 #include <boost/fusion/view/joint_view/joint_view.hpp>
-#include <boost/fusion/view/joint_view/joint_view_iterator.hpp>
 
 #endif
Modified: sandbox/SOC/2009/fusion/boost/fusion/view/joint_view/detail/begin_impl.hpp
==============================================================================
--- sandbox/SOC/2009/fusion/boost/fusion/view/joint_view/detail/begin_impl.hpp	(original)
+++ sandbox/SOC/2009/fusion/boost/fusion/view/joint_view/detail/begin_impl.hpp	2009-07-10 18:07:00 EDT (Fri, 10 Jul 2009)
@@ -14,68 +14,60 @@
 
 #include <boost/mpl/if.hpp>
 
-namespace boost { namespace fusion
+namespace boost { namespace fusion { namespace extension
 {
-    struct joint_view_tag;
+    template <typename Tag>
+    struct begin_impl;
 
-    template <typename First, typename Last, typename Concat>
-    struct joint_view_iterator;
-
-    namespace extension
+    template <>
+    struct begin_impl<joint_view_tag>
     {
-        template <typename Tag>
-        struct begin_impl;
-
-        template <>
-        struct begin_impl<joint_view_tag>
+        template <typename SeqRef>
+        struct apply
         {
-            template <typename SeqRef>
-            struct apply
+            typedef typename detail::remove_reference<SeqRef>::type seq;
+            typedef typename
+                result_of::begin<typename seq::seq1_type>::type
+            first_type;
+            typedef typename
+                result_of::end<typename seq::seq1_type>::type
+            last_type;
+            typedef typename
+                result_of::begin<typename seq::seq2_type>::type
+            concat_type;
+            typedef typename
+                result_of::equal_to<first_type, last_type>::type
+            equal_to;
+
+            typedef typename
+                mpl::if_<
+                    equal_to
+                  , concat_iterator<concat_type>
+                  , joint_view_iterator<first_type, last_type, concat_type>
+                >::type
+            type;
+
+            static type
+            call(SeqRef seq, mpl::true_)
+            {
+                return type(fusion::begin(seq.seq2.get()));
+            }
+
+            static type
+            call(SeqRef seq, mpl::false_)
+            {
+                return type(
+                        fusion::begin(seq.seq1.get())
+                      , fusion::begin(seq.seq2.get()));
+            }
+
+            static type
+            call(SeqRef seq)
             {
-                typedef typename detail::remove_reference<SeqRef>::type seq;
-                typedef typename
-                    result_of::begin<typename seq::seq1_type>::type
-                first_type;
-                typedef typename
-                    result_of::end<typename seq::seq1_type>::type
-                last_type;
-                typedef typename
-                    result_of::begin<typename seq::seq2_type>::type
-                concat_type;
-                typedef typename
-                    result_of::equal_to<first_type, last_type>::type
-                equal_to;
-
-                typedef typename
-                    mpl::if_<
-                        equal_to
-                      , concat_iterator<concat_type>
-                      , joint_view_iterator<first_type, last_type, concat_type>
-                    >::type
-                type;
-
-                static type
-                call(SeqRef seq, mpl::true_)
-                {
-                    return type(fusion::begin(seq.seq2.get()));
-                }
-
-                static type
-                call(SeqRef seq, mpl::false_)
-                {
-                    return type(
-                            fusion::begin(seq.seq1.get())
-                          , fusion::begin(seq.seq2.get()));
-                }
-
-                static type
-                call(SeqRef seq)
-                {
-                    return call(seq, equal_to());
-                }
-            };
+                return call(seq, equal_to());
+            }
         };
-    }
-}}
+    };
+}}}
 
 #endif
Modified: sandbox/SOC/2009/fusion/boost/fusion/view/joint_view/detail/deref_impl.hpp
==============================================================================
--- sandbox/SOC/2009/fusion/boost/fusion/view/joint_view/detail/deref_impl.hpp	(original)
+++ sandbox/SOC/2009/fusion/boost/fusion/view/joint_view/detail/deref_impl.hpp	2009-07-10 18:07:00 EDT (Fri, 10 Jul 2009)
@@ -10,42 +10,37 @@
 
 #include <boost/fusion/iterator/deref.hpp>
 
-namespace boost { namespace fusion
+namespace boost { namespace fusion { namespace extension
 {
-    struct joint_view_iterator_tag;
+    template <typename Tag>
+    struct deref_impl;
 
-    namespace extension
+    template <>
+    struct deref_impl<joint_view_iterator_tag>
     {
-        template <typename Tag>
-        struct deref_impl;
-
-        template <>
-        struct deref_impl<joint_view_iterator_tag>
+        template<typename ItRef>
+        struct apply
         {
-            template<typename ItRef>
-            struct apply
+            typedef typename
+                result_of::deref<
+                    typename detail::remove_reference<
+                        ItRef
+                    >::type::first_type
+                >::type
+            type;
+
+            static type
+            call(ItRef it)
             {
-                typedef typename
-                    result_of::deref<
-                        typename detail::remove_reference<
-                            ItRef
-                        >::type::first_type
-                    >::type
-                type;
-
-                static type
-                call(ItRef it)
-                {
-                    return fusion::deref(it.first);
-                }
-            };
+                return fusion::deref(it.first);
+            }
         };
+    };
 
-        template <>
-        struct deref_impl<concat_iterator_tag>
-          : deref_impl<joint_view_iterator_tag>
-        {};
-    }
-}}
+    template <>
+    struct deref_impl<concat_iterator_tag>
+      : deref_impl<joint_view_iterator_tag>
+    {};
+}}}
 
 #endif
Modified: sandbox/SOC/2009/fusion/boost/fusion/view/joint_view/detail/end_impl.hpp
==============================================================================
--- sandbox/SOC/2009/fusion/boost/fusion/view/joint_view/detail/end_impl.hpp	(original)
+++ sandbox/SOC/2009/fusion/boost/fusion/view/joint_view/detail/end_impl.hpp	2009-07-10 18:07:00 EDT (Fri, 10 Jul 2009)
@@ -12,39 +12,34 @@
 
 #include <boost/mpl/if.hpp>
 
-namespace boost { namespace fusion
+namespace boost { namespace fusion { namespace extension
 {
-    struct joint_view_tag;
+    template <typename Tag>
+    struct end_impl;
 
-    namespace extension
+    template <>
+    struct end_impl<joint_view_tag>
     {
-        template <typename Tag>
-        struct end_impl;
-
-        template <>
-        struct end_impl<joint_view_tag>
+        template <typename SeqRef>
+        struct apply
         {
-            template <typename SeqRef>
-            struct apply
-            {
-                typedef
-                    concat_iterator<
-                        typename result_of::end<
-                            typename detail::remove_reference<
-                                SeqRef
-                            >::type::seq2_type
-                        >::type
-                    >
-                type;
+            typedef
+                concat_iterator<
+                    typename result_of::end<
+                        typename detail::remove_reference<
+                            SeqRef
+                        >::type::seq2_type
+                    >::type
+                >
+            type;
 
-                static type
-                call(SeqRef seq)
-                {
-                    return type(fusion::end(seq.seq2.get()));
-                }
-            };
+            static type
+            call(SeqRef seq)
+            {
+                return type(fusion::end(seq.seq2.get()));
+            }
         };
-    }
-}}
+    };
+}}}
 
 #endif
Modified: sandbox/SOC/2009/fusion/boost/fusion/view/joint_view/detail/equal_to_impl.hpp
==============================================================================
--- sandbox/SOC/2009/fusion/boost/fusion/view/joint_view/detail/equal_to_impl.hpp	(original)
+++ sandbox/SOC/2009/fusion/boost/fusion/view/joint_view/detail/equal_to_impl.hpp	2009-07-10 18:07:00 EDT (Fri, 10 Jul 2009)
@@ -16,8 +16,6 @@
 
 namespace boost { namespace fusion
 {
-    struct joint_view_iterator_tag;
-
     namespace detail
     {
         template<typename It1, typename It2>
Added: sandbox/SOC/2009/fusion/boost/fusion/view/joint_view/detail/joint_view_fwd.hpp
==============================================================================
--- (empty file)
+++ sandbox/SOC/2009/fusion/boost/fusion/view/joint_view/detail/joint_view_fwd.hpp	2009-07-10 18:07:00 EDT (Fri, 10 Jul 2009)
@@ -0,0 +1,14 @@
+// Copyright Christopher Schmidt 2009.
+// Distributed under 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_FUSION_VIEW_JOINT_VIEW_DETAIL_JOINT_VIEW_FWD_HPP
+#define BOOST_FUSION_VIEW_JOINT_VIEW_DETAIL_JOINT_VIEW_FWD_HPP
+
+namespace boost { namespace fusion
+{
+    struct joint_view_tag;
+}}
+
+#endif
Added: sandbox/SOC/2009/fusion/boost/fusion/view/joint_view/detail/joint_view_iterator.hpp
==============================================================================
--- (empty file)
+++ sandbox/SOC/2009/fusion/boost/fusion/view/joint_view/detail/joint_view_iterator.hpp	2009-07-10 18:07:00 EDT (Fri, 10 Jul 2009)
@@ -0,0 +1,58 @@
+/*=============================================================================
+    Copyright (c) 2001-2006 Joel de Guzman
+
+    Distributed under 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_FUSION_VIEW_JOINT_VIEW_DETAIL_JOINT_VIEW_ITERATOR_HPP
+#define BOOST_FUSION_VIEW_JOINT_VIEW_DETAIL_JOINT_VIEW_ITERATOR_HPP
+
+#include <boost/fusion/iterator/equal_to.hpp>
+#include <boost/fusion/support/iterator_base.hpp>
+#include <boost/fusion/support/assert.hpp>
+
+namespace boost { namespace fusion
+{
+    struct joint_view_iterator_tag;
+    struct concat_iterator_tag;
+    struct forward_traversal_tag;
+
+    template <typename First, typename Last, typename Concat>
+    struct joint_view_iterator
+      : iterator_base<joint_view_iterator<First, Last, Concat> >
+    {
+        typedef joint_view_iterator_tag fusion_tag;
+        typedef forward_traversal_tag category;
+
+        typedef First first_type;
+        typedef Last last_type;
+        typedef Concat concat_type;
+
+        joint_view_iterator(First const& first, Concat const& concat)
+          : first(first)
+          , concat(concat)
+        {}
+
+        first_type first;
+        concat_type concat;
+    };
+
+    template <typename First>
+    struct concat_iterator
+      : iterator_base<concat_iterator<First> >
+    {
+        typedef concat_iterator_tag fusion_tag;
+        typedef forward_traversal_tag category;
+
+        typedef First first_type;
+
+        explicit concat_iterator(First const& first)
+          : first(first)
+        {}
+
+        first_type first;
+    };
+}}
+
+#endif
Modified: sandbox/SOC/2009/fusion/boost/fusion/view/joint_view/detail/next_impl.hpp
==============================================================================
--- sandbox/SOC/2009/fusion/boost/fusion/view/joint_view/detail/next_impl.hpp	(original)
+++ sandbox/SOC/2009/fusion/boost/fusion/view/joint_view/detail/next_impl.hpp	2009-07-10 18:07:00 EDT (Fri, 10 Jul 2009)
@@ -12,86 +12,78 @@
 #include <boost/fusion/iterator/equal_to.hpp>
 #include <boost/mpl/if.hpp>
 
-namespace boost { namespace fusion
+namespace boost { namespace fusion { namespace extension
 {
-    struct joint_view_iterator_tag;
+    template <typename Tag>
+    struct next_impl;
 
-    template <typename First, typename Last, typename Concat>
-    struct joint_view_iterator;
-
-    namespace extension
+    template <>
+    struct next_impl<joint_view_iterator_tag>
     {
-        template <typename Tag>
-        struct next_impl;
-
-        template <>
-        struct next_impl<joint_view_iterator_tag>
+        template <typename ItRef>
+        struct apply
         {
-            template <typename ItRef>
-            struct apply
+            typedef typename detail::remove_reference<ItRef>::type it;
+
+            typedef typename it::first_type first_type;
+            typedef typename it::last_type last_type;
+            typedef typename it::concat_type concat_type;
+            typedef typename result_of::next<first_type>::type next_type;
+            typedef typename
+                result_of::equal_to<next_type, last_type>::type
+            equal_to;
+
+            typedef typename
+                mpl::if_<
+                    equal_to
+                  , concat_iterator<concat_type>
+                  , joint_view_iterator<next_type, last_type, concat_type>
+                >::type
+            type;
+
+            static type
+            call(ItRef it, mpl::true_)
             {
-                typedef typename detail::remove_reference<ItRef>::type it;
+                return type(it.concat);
+            }
 
-                typedef typename it::first_type first_type;
-                typedef typename it::last_type last_type;
-                typedef typename it::concat_type concat_type;
-                typedef typename result_of::next<first_type>::type next_type;
-                typedef typename
-                    result_of::equal_to<next_type, last_type>::type
-                equal_to;
-
-                typedef typename
-                    mpl::if_<
-                        equal_to
-                      , concat_iterator<concat_type>
-                      , joint_view_iterator<next_type, last_type, concat_type>
-                    >::type
-                type;
+            static type
+            call(ItRef it, mpl::false_)
+            {
+                return type(fusion::next(it.first), it.concat);
+            }
 
-                static type
-                call(ItRef it, mpl::true_)
-                {
-                    return type(it.concat);
-                }
-
-                static type
-                call(ItRef it, mpl::false_)
-                {
-                    return type(fusion::next(it.first), it.concat);
-                }
-
-                static type
-                call(ItRef it)
-                {
-                    return call(it, equal_to());
-                }
-            };
+            static type
+            call(ItRef it)
+            {
+                return call(it, equal_to());
+            }
         };
+    };
 
-        template <>
-        struct next_impl<concat_iterator_tag>
+    template <>
+    struct next_impl<concat_iterator_tag>
+    {
+        template <typename ItRef>
+        struct apply
         {
-            template <typename ItRef>
-            struct apply
+            typedef
+                concat_iterator<
+                    typename result_of::next<
+                        typename detail::remove_reference<
+                            ItRef
+                        >::type::first_type
+                    >::type
+                >
+            type;
+
+            static type
+            call(ItRef it)
             {
-                typedef
-                    concat_iterator<
-                        typename result_of::next<
-                            typename detail::remove_reference<
-                                ItRef
-                            >::type::first_type
-                        >::type
-                    >
-                type;
-
-                static type
-                call(ItRef it)
-                {
-                    return type(fusion::next(it.first));
-                }
-            };
+                return type(fusion::next(it.first));
+            }
         };
-    }
-}}
+    };
+}}}
 
 #endif
Modified: sandbox/SOC/2009/fusion/boost/fusion/view/joint_view/detail/value_of_impl.hpp
==============================================================================
--- sandbox/SOC/2009/fusion/boost/fusion/view/joint_view/detail/value_of_impl.hpp	(original)
+++ sandbox/SOC/2009/fusion/boost/fusion/view/joint_view/detail/value_of_impl.hpp	2009-07-10 18:07:00 EDT (Fri, 10 Jul 2009)
@@ -10,31 +10,26 @@
 
 #include <boost/fusion/iterator/value_of.hpp>
 
-namespace boost { namespace fusion
+namespace boost { namespace fusion { namespace extension
 {
-    struct joint_view_iterator_tag;
+    template <typename Tag>
+    struct value_of_impl;
 
-    namespace extension
+    template <>
+    struct value_of_impl<joint_view_iterator_tag>
     {
-        template <typename Tag>
-        struct value_of_impl;
-
-        template <>
-        struct value_of_impl<joint_view_iterator_tag>
-        {
-            template <typename ItRef>
-            struct apply
-              : result_of::value_of<
-                    typename detail::remove_reference<ItRef>::type::first_type
-                >
-            {};
-        };
-
-        template <>
-        struct value_of_impl<concat_iterator_tag>
-          : value_of_impl<joint_view_iterator_tag>
+        template <typename ItRef>
+        struct apply
+          : result_of::value_of<
+                typename detail::remove_reference<ItRef>::type::first_type
+            >
         {};
-    }
-}}
+    };
+
+    template <>
+    struct value_of_impl<concat_iterator_tag>
+      : value_of_impl<joint_view_iterator_tag>
+    {};
+}}}
 
 #endif
Modified: sandbox/SOC/2009/fusion/boost/fusion/view/joint_view/joint_view.hpp
==============================================================================
--- sandbox/SOC/2009/fusion/boost/fusion/view/joint_view/joint_view.hpp	(original)
+++ sandbox/SOC/2009/fusion/boost/fusion/view/joint_view/joint_view.hpp	2009-07-10 18:07:00 EDT (Fri, 10 Jul 2009)
@@ -20,7 +20,8 @@
 #include <boost/mpl/plus.hpp>
 #include <boost/mpl/bool.hpp>
 
-#include <boost/fusion/view/joint_view/joint_view_iterator.hpp>
+#include <boost/fusion/view/joint_view/detail/joint_view_fwd.hpp>
+#include <boost/fusion/view/joint_view/detail/joint_view_iterator.hpp>
 #include <boost/fusion/view/joint_view/detail/begin_impl.hpp>
 #include <boost/fusion/view/joint_view/detail/deref_impl.hpp>
 #include <boost/fusion/view/joint_view/detail/end_impl.hpp>
@@ -30,7 +31,6 @@
 
 namespace boost { namespace fusion
 {
-    struct joint_view_tag;
     struct forward_traversal_tag;
     struct fusion_sequence_tag;
 
Deleted: sandbox/SOC/2009/fusion/boost/fusion/view/joint_view/joint_view_iterator.hpp
==============================================================================
--- sandbox/SOC/2009/fusion/boost/fusion/view/joint_view/joint_view_iterator.hpp	2009-07-10 18:07:00 EDT (Fri, 10 Jul 2009)
+++ (empty file)
@@ -1,58 +0,0 @@
-/*=============================================================================
-    Copyright (c) 2001-2006 Joel de Guzman
-
-    Distributed under 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_FUSION_VIEW_JOINT_VIEW_JOINT_VIEW_ITERATOR_HPP
-#define BOOST_FUSION_VIEW_JOINT_VIEW_JOINT_VIEW_ITERATOR_HPP
-
-#include <boost/fusion/support/iterator_base.hpp>
-#include <boost/fusion/iterator/equal_to.hpp>
-#include <boost/fusion/support/assert.hpp>
-
-namespace boost { namespace fusion
-{
-    struct joint_view_iterator_tag;
-    struct concat_iterator_tag;
-    struct forward_traversal_tag;
-
-    template <typename First, typename Last, typename Concat>
-    struct joint_view_iterator
-      : iterator_base<joint_view_iterator<First, Last, Concat> >
-    {
-        typedef joint_view_iterator_tag fusion_tag;
-        typedef forward_traversal_tag category;
-
-        typedef First first_type;
-        typedef Last last_type;
-        typedef Concat concat_type;
-
-        joint_view_iterator(First const& first, Concat const& concat)
-          : first(first)
-          , concat(concat)
-        {}
-
-        first_type first;
-        concat_type concat;
-    };
-
-    template <typename First>
-    struct concat_iterator
-      : iterator_base<concat_iterator<First> >
-    {
-        typedef concat_iterator_tag fusion_tag;
-        typedef forward_traversal_tag category;
-
-        typedef First first_type;
-
-        explicit concat_iterator(First const& first)
-          : first(first)
-        {}
-
-        first_type first;
-    };
-}}
-
-#endif
Modified: sandbox/SOC/2009/fusion/boost/fusion/view/reverse_view.hpp
==============================================================================
--- sandbox/SOC/2009/fusion/boost/fusion/view/reverse_view.hpp	(original)
+++ sandbox/SOC/2009/fusion/boost/fusion/view/reverse_view.hpp	2009-07-10 18:07:00 EDT (Fri, 10 Jul 2009)
@@ -9,6 +9,5 @@
 #define BOOST_FUSION_VIEW_REVERSE_VIEW_HPP
 
 #include <boost/fusion/view/reverse_view/reverse_view.hpp>
-#include <boost/fusion/view/reverse_view/reverse_view_iterator.hpp>
 
 #endif
Modified: sandbox/SOC/2009/fusion/boost/fusion/view/reverse_view/detail/advance_impl.hpp
==============================================================================
--- sandbox/SOC/2009/fusion/boost/fusion/view/reverse_view/detail/advance_impl.hpp	(original)
+++ sandbox/SOC/2009/fusion/boost/fusion/view/reverse_view/detail/advance_impl.hpp	2009-07-10 18:07:00 EDT (Fri, 10 Jul 2009)
@@ -12,45 +12,37 @@
 #include <boost/fusion/iterator/advance.hpp>
 #include <boost/mpl/negate.hpp>
 
-namespace boost { namespace fusion {
+namespace boost { namespace fusion { namespace extension
+{
+    template<typename Tag>
+    struct advance_impl;
 
-    struct reverse_view_iterator_tag;
-
-    template <typename It>
-    struct reverse_view_iterator;
-
-    namespace extension
+    template<>
+    struct advance_impl<reverse_view_iterator_tag>
     {
-        template<typename Tag>
-        struct advance_impl;
-
-        template<>
-        struct advance_impl<reverse_view_iterator_tag>
+        template<typename ItRef, typename Dist>
+        struct apply
         {
-            template<typename ItRef, typename Dist>
-            struct apply
-            {
-                typedef typename mpl::negate<Dist>::type neg_dist;
+            typedef typename mpl::negate<Dist>::type neg_dist;
 
-                typedef
-                    reverse_view_iterator<
-                        typename result_of::advance<
-                            typename detail::remove_reference<
-                                ItRef
-                            >::type::first_type
-                          , neg_dist
-                        >::type
-                    >
-                type;
+            typedef
+                reverse_view_iterator<
+                    typename result_of::advance<
+                        typename detail::remove_reference<
+                            ItRef
+                        >::type::first_type
+                      , neg_dist
+                    >::type
+                >
+            type;
 
-                static type
-                call(ItRef it)
-                {
-                    return type(boost::fusion::advance<neg_dist>(it.first));
-                }
-            };
+            static type
+            call(ItRef it)
+            {
+                return type(boost::fusion::advance<neg_dist>(it.first));
+            }
         };
-    }
-}}
+    };
+}}}
 
 #endif
Modified: sandbox/SOC/2009/fusion/boost/fusion/view/reverse_view/detail/begin_impl.hpp
==============================================================================
--- sandbox/SOC/2009/fusion/boost/fusion/view/reverse_view/detail/begin_impl.hpp	(original)
+++ sandbox/SOC/2009/fusion/boost/fusion/view/reverse_view/detail/begin_impl.hpp	2009-07-10 18:07:00 EDT (Fri, 10 Jul 2009)
@@ -10,42 +10,34 @@
 
 #include <boost/fusion/sequence/intrinsic/end.hpp>
 
-namespace boost { namespace fusion
+namespace boost { namespace fusion { namespace extension
 {
-    struct reverse_view_tag;
+    template <typename Tag>
+    struct begin_impl;
 
-    template <typename First>
-    struct reverse_view_iterator;
-
-    namespace extension
+    template <>
+    struct begin_impl<reverse_view_tag>
     {
-        template <typename Tag>
-        struct begin_impl;
-
-        template <>
-        struct begin_impl<reverse_view_tag>
+        template <typename SeqRef>
+        struct apply
         {
-            template <typename SeqRef>
-            struct apply
-            {
-                typedef
-                    reverse_view_iterator<
-                        typename result_of::end<
-                            typename detail::remove_reference<
-                                SeqRef
-                            >::type::seq_type
-                        >::type
-                    >
-                type;
+            typedef
+                reverse_view_iterator<
+                    typename result_of::end<
+                        typename detail::remove_reference<
+                            SeqRef
+                        >::type::seq_type
+                    >::type
+                >
+            type;
 
-                static type
-                call(SeqRef seq)
-                {
-                    return type(fusion::end(seq.seq.get()));
-                }
-            };
+            static type
+            call(SeqRef seq)
+            {
+                return type(fusion::end(seq.seq.get()));
+            }
         };
-    }
-}}
+    };
+}}}
 
 #endif
Modified: sandbox/SOC/2009/fusion/boost/fusion/view/reverse_view/detail/deref_impl.hpp
==============================================================================
--- sandbox/SOC/2009/fusion/boost/fusion/view/reverse_view/detail/deref_impl.hpp	(original)
+++ sandbox/SOC/2009/fusion/boost/fusion/view/reverse_view/detail/deref_impl.hpp	2009-07-10 18:07:00 EDT (Fri, 10 Jul 2009)
@@ -11,39 +11,34 @@
 #include <boost/fusion/iterator/deref.hpp>
 #include <boost/fusion/iterator/prior.hpp>
 
-namespace boost { namespace fusion
+namespace boost { namespace fusion { namespace extension
 {
-    struct reverse_view_iterator_tag;
+    template <typename Tag>
+    struct deref_impl;
 
-    namespace extension
+    template <>
+    struct deref_impl<reverse_view_iterator_tag>
     {
-        template <typename Tag>
-        struct deref_impl;
-
-        template <>
-        struct deref_impl<reverse_view_iterator_tag>
+        template <typename ItRef>
+        struct apply
         {
-            template <typename ItRef>
-            struct apply
-            {
-                typedef typename
-                    result_of::deref<
-                        typename result_of::prior<
-                            typename detail::remove_reference<
-                                ItRef
-                            >::type::first_type
-                        >::type
+            typedef typename
+                result_of::deref<
+                    typename result_of::prior<
+                        typename detail::remove_reference<
+                            ItRef
+                        >::type::first_type
                     >::type
-                type;
+                >::type
+            type;
 
-                static type
-                call(ItRef it)
-                {
-                    return fusion::deref(fusion::prior(it.first));
-                }
-            };
+            static type
+            call(ItRef it)
+            {
+                return fusion::deref(fusion::prior(it.first));
+            }
         };
-    }
-}}
+    };
+}}}
 
 #endif
Modified: sandbox/SOC/2009/fusion/boost/fusion/view/reverse_view/detail/distance_impl.hpp
==============================================================================
--- sandbox/SOC/2009/fusion/boost/fusion/view/reverse_view/detail/distance_impl.hpp	(original)
+++ sandbox/SOC/2009/fusion/boost/fusion/view/reverse_view/detail/distance_impl.hpp	2009-07-10 18:07:00 EDT (Fri, 10 Jul 2009)
@@ -11,37 +11,29 @@
 
 #include <boost/fusion/iterator/distance.hpp>
 
-namespace boost { namespace fusion {
+namespace boost { namespace fusion { namespace extension
+{
+    template<typename Tag>
+    struct distance_impl;
 
-    struct reverse_view_iterator_tag;
-
-    template <typename First>
-    struct reverse_view_iterator;
-
-    namespace extension
+    template<>
+    struct distance_impl<reverse_view_iterator_tag>
     {
-        template<typename Tag>
-        struct distance_impl;
-
-        template<>
-        struct distance_impl<reverse_view_iterator_tag>
+        template<typename FirstRef, typename LastRef>
+        struct apply
         {
-            template<typename FirstRef, typename LastRef>
-            struct apply
-            {
-                typedef typename
-                    result_of::distance<
-                        typename detail::remove_reference<
-                            FirstRef
-                        >::type::first_type
-                      , typename detail::remove_reference<
-                            LastRef
-                        >::type::first_type
-                    >::type
-                type;
-            };
+            typedef typename
+                result_of::distance<
+                    typename detail::remove_reference<
+                        FirstRef
+                    >::type::first_type
+                  , typename detail::remove_reference<
+                        LastRef
+                    >::type::first_type
+                >::type
+            type;
         };
-    }
-}}
+    };
+}}}
 
 #endif
Modified: sandbox/SOC/2009/fusion/boost/fusion/view/reverse_view/detail/end_impl.hpp
==============================================================================
--- sandbox/SOC/2009/fusion/boost/fusion/view/reverse_view/detail/end_impl.hpp	(original)
+++ sandbox/SOC/2009/fusion/boost/fusion/view/reverse_view/detail/end_impl.hpp	2009-07-10 18:07:00 EDT (Fri, 10 Jul 2009)
@@ -10,41 +10,34 @@
 
 #include <boost/fusion/sequence/intrinsic/begin.hpp>
 
-//TODO: Forward view cv qualifiers?
-
-namespace boost { namespace fusion
+namespace boost { namespace fusion { namespace extension
 {
-    struct reverse_view_tag;
+    template <typename Tag>
+    struct end_impl;
 
-    namespace extension
+    template <>
+    struct end_impl<reverse_view_tag>
     {
-        template <typename Tag>
-        struct end_impl;
-
-        template <>
-        struct end_impl<reverse_view_tag>
+        template <typename SeqRef>
+        struct apply
         {
-            template <typename SeqRef>
-            struct apply
-            {
-                typedef
-                    reverse_view_iterator<
-                        typename result_of::begin<
-                            typename detail::remove_reference<
-                                SeqRef
-                            >::type::seq_type
-                        >::type
-                     >
-                type;
+            typedef
+                reverse_view_iterator<
+                    typename result_of::begin<
+                        typename detail::remove_reference<
+                            SeqRef
+                        >::type::seq_type
+                    >::type
+                 >
+            type;
 
-                static type
-                call(SeqRef seq)
-                {
-                    return type(fusion::begin(seq.seq.get()));
-                }
-            };
+            static type
+            call(SeqRef seq)
+            {
+                return type(fusion::begin(seq.seq.get()));
+            }
         };
-    }
-}}
+    };
+}}}
 
 #endif
Modified: sandbox/SOC/2009/fusion/boost/fusion/view/reverse_view/detail/equal_to_impl.hpp
==============================================================================
--- sandbox/SOC/2009/fusion/boost/fusion/view/reverse_view/detail/equal_to_impl.hpp	(original)
+++ sandbox/SOC/2009/fusion/boost/fusion/view/reverse_view/detail/equal_to_impl.hpp	2009-07-10 18:07:00 EDT (Fri, 10 Jul 2009)
@@ -11,27 +11,22 @@
 
 #include <boost/type_traits/is_same.hpp>
 
-namespace boost { namespace fusion
+namespace boost { namespace fusion { namespace extension
 {
-    struct reverse_view_iterator_tag;
+    template<typename Tag>
+    struct equal_to_impl;
 
-    namespace extension
+    template<>
+    struct equal_to_impl<reverse_view_iterator_tag>
     {
-        template<typename Tag>
-        struct equal_to_impl;
-
-        template<>
-        struct equal_to_impl<reverse_view_iterator_tag>
-        {
-            template<typename It1Ref, typename It2Ref>
-            struct apply
-              : is_same<
-                    typename detail::remove_reference<It1Ref>::type::first_type
-                  , typename detail::remove_reference<It2Ref>::type::first_type
-                >
-            {};
-        };
-    }
-}}
+        template<typename It1Ref, typename It2Ref>
+        struct apply
+          : is_same<
+                typename detail::remove_reference<It1Ref>::type::first_type
+              , typename detail::remove_reference<It2Ref>::type::first_type
+            >
+        {};
+    };
+}}}
 
 #endif
Modified: sandbox/SOC/2009/fusion/boost/fusion/view/reverse_view/detail/next_impl.hpp
==============================================================================
--- sandbox/SOC/2009/fusion/boost/fusion/view/reverse_view/detail/next_impl.hpp	(original)
+++ sandbox/SOC/2009/fusion/boost/fusion/view/reverse_view/detail/next_impl.hpp	2009-07-10 18:07:00 EDT (Fri, 10 Jul 2009)
@@ -10,39 +10,31 @@
 
 #include <boost/fusion/iterator/prior.hpp>
 
-namespace boost { namespace fusion
+namespace boost { namespace fusion { namespace extension
 {
-    struct reverse_view_iterator_tag;
-
-    template <typename First>
-    struct reverse_view_iterator;
-
-    namespace extension
+    template <>
+    struct next_impl<reverse_view_iterator_tag>
     {
-        template <>
-        struct next_impl<reverse_view_iterator_tag>
+        template <typename ItRef>
+        struct apply
         {
-            template <typename ItRef>
-            struct apply
-            {
-                typedef
-                    reverse_view_iterator<
-                        typename result_of::prior<
-                            typename detail::remove_reference<
-                                ItRef
-                            >::type::first_type
-                        >::type
-                    >
-                type;
+            typedef
+                reverse_view_iterator<
+                    typename result_of::prior<
+                        typename detail::remove_reference<
+                            ItRef
+                        >::type::first_type
+                    >::type
+                >
+            type;
 
-                static type
-                call(ItRef it)
-                {
-                    return type(fusion::prior(it.first));
-                }
-            };
+            static type
+            call(ItRef it)
+            {
+                return type(fusion::prior(it.first));
+            }
         };
-    }
-}}
+    };
+}}}
 
 #endif
Modified: sandbox/SOC/2009/fusion/boost/fusion/view/reverse_view/detail/prior_impl.hpp
==============================================================================
--- sandbox/SOC/2009/fusion/boost/fusion/view/reverse_view/detail/prior_impl.hpp	(original)
+++ sandbox/SOC/2009/fusion/boost/fusion/view/reverse_view/detail/prior_impl.hpp	2009-07-10 18:07:00 EDT (Fri, 10 Jul 2009)
@@ -10,39 +10,31 @@
 
 #include <boost/fusion/iterator/next.hpp>
 
-namespace boost { namespace fusion
+namespace boost { namespace fusion { namespace extension
 {
-    struct reverse_view_iterator_tag;
-
-    template <typename It>
-    struct reverse_view_iterator;
-
-    namespace extension
+    template <>
+    struct prior_impl<reverse_view_iterator_tag>
     {
-        template <>
-        struct prior_impl<reverse_view_iterator_tag>
+        template <typename ItRef>
+        struct apply
         {
-            template <typename ItRef>
-            struct apply
-            {
-                typedef
-                    reverse_view_iterator<
-                        typename result_of::next<
-                            typename detail::remove_reference<
-                                ItRef
-                            >::type::first_type
-                        >::type
-                    >
-                type;
+            typedef
+                reverse_view_iterator<
+                    typename result_of::next<
+                        typename detail::remove_reference<
+                            ItRef
+                        >::type::first_type
+                    >::type
+                >
+            type;
 
-                static type
-                call(ItRef it)
-                {
-                    return type(next(it.first));
-                }
-            };
+            static type
+            call(ItRef it)
+            {
+                return type(next(it.first));
+            }
         };
-    }
-}}
+    };
+}}}
 
 #endif
Added: sandbox/SOC/2009/fusion/boost/fusion/view/reverse_view/detail/reverse_view_fwd.hpp
==============================================================================
--- (empty file)
+++ sandbox/SOC/2009/fusion/boost/fusion/view/reverse_view/detail/reverse_view_fwd.hpp	2009-07-10 18:07:00 EDT (Fri, 10 Jul 2009)
@@ -0,0 +1,14 @@
+// Copyright Christopher Schmidt 2009.
+// Distributed under 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_FUSION_VIEW_REVERSE_VIEW_DETAIL_REVERSE_VIEW_FWD_HPP
+#define BOOST_FUSION_VIEW_REVERSE_VIEW_DETAIL_REVERSE_VIEW_FWD_HPP
+
+namespace boost { namespace fusion
+{
+    struct reverse_view_tag;
+}}
+
+#endif
Added: sandbox/SOC/2009/fusion/boost/fusion/view/reverse_view/detail/reverse_view_iterator.hpp
==============================================================================
--- (empty file)
+++ sandbox/SOC/2009/fusion/boost/fusion/view/reverse_view/detail/reverse_view_iterator.hpp	2009-07-10 18:07:00 EDT (Fri, 10 Jul 2009)
@@ -0,0 +1,41 @@
+/*=============================================================================
+    Copyright (c) 2001-2006 Joel de Guzman
+
+    Distributed under 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_FUSION_VIEW_REVERSE_VIEW_DETAIL_REVERSE_VIEW_ITERATOR_HPP
+#define BOOST_FUSION_VIEW_REVERSE_VIEW_DETAIL_REVERSE_VIEW_ITERATOR_HPP
+
+#include <boost/fusion/support/iterator_base.hpp>
+#include <boost/fusion/support/category_of.hpp>
+#include <boost/fusion/support/assert.hpp>
+
+#include <boost/type_traits/is_base_of.hpp>
+
+namespace boost { namespace fusion
+{
+    struct reverse_view_iterator_tag;
+
+    template <typename First>
+    struct reverse_view_iterator
+      : iterator_base<reverse_view_iterator<First> >
+    {
+        typedef First first_type;
+        typedef reverse_view_iterator_tag fusion_tag;
+        typedef typename traits::category_of<first_type>::type category;
+
+        //BOOST_FUSION_STATIC_ASSERT(
+        //    (is_base_of<bidirectional_traversal_tag, category>::value),
+        //    "underlying iterator must be bidirectional");
+
+        reverse_view_iterator(First const& first)
+          : first(first)
+        {}
+
+        first_type first;
+    };
+}}
+
+#endif
Modified: sandbox/SOC/2009/fusion/boost/fusion/view/reverse_view/detail/value_of_impl.hpp
==============================================================================
--- sandbox/SOC/2009/fusion/boost/fusion/view/reverse_view/detail/value_of_impl.hpp	(original)
+++ sandbox/SOC/2009/fusion/boost/fusion/view/reverse_view/detail/value_of_impl.hpp	2009-07-10 18:07:00 EDT (Fri, 10 Jul 2009)
@@ -11,33 +11,28 @@
 #include <boost/fusion/iterator/value_of.hpp>
 #include <boost/fusion/iterator/prior.hpp>
 
-namespace boost { namespace fusion
+namespace boost { namespace fusion { namespace extension
 {
-    struct reverse_view_iterator_tag;
+    template <typename Tag>
+    struct value_of_impl;
 
-    namespace extension
+    template <>
+    struct value_of_impl<reverse_view_iterator_tag>
     {
-        template <typename Tag>
-        struct value_of_impl;
-
-        template <>
-        struct value_of_impl<reverse_view_iterator_tag>
+        template <typename ItRef>
+        struct apply
         {
-            template <typename ItRef>
-            struct apply
-            {
-                typedef typename
-                    result_of::value_of<
-                        typename result_of::prior<
-                            typename detail::remove_reference<
-                                ItRef
-                            >::type::first_type
-                        >::type
+            typedef typename
+                result_of::value_of<
+                    typename result_of::prior<
+                        typename detail::remove_reference<
+                            ItRef
+                        >::type::first_type
                     >::type
-                type;
-            };
+                >::type
+            type;
         };
-    }
-}}
+    };
+}}}
 
 #endif
Modified: sandbox/SOC/2009/fusion/boost/fusion/view/reverse_view/reverse_view.hpp
==============================================================================
--- sandbox/SOC/2009/fusion/boost/fusion/view/reverse_view/reverse_view.hpp	(original)
+++ sandbox/SOC/2009/fusion/boost/fusion/view/reverse_view/reverse_view.hpp	2009-07-10 18:07:00 EDT (Fri, 10 Jul 2009)
@@ -21,13 +21,20 @@
 #include <boost/type_traits/is_base_of.hpp>
 #include <boost/mpl/bool.hpp>
 
-#include <boost/fusion/view/reverse_view/reverse_view_iterator.hpp>
+#include <boost/fusion/view/reverse_view/detail/reverse_view_fwd.hpp>
+#include <boost/fusion/view/reverse_view/detail/reverse_view_iterator.hpp>
 #include <boost/fusion/view/reverse_view/detail/begin_impl.hpp>
 #include <boost/fusion/view/reverse_view/detail/end_impl.hpp>
+#include <boost/fusion/view/reverse_view/detail/deref_impl.hpp>
+#include <boost/fusion/view/reverse_view/detail/next_impl.hpp>
+#include <boost/fusion/view/reverse_view/detail/prior_impl.hpp>
+#include <boost/fusion/view/reverse_view/detail/advance_impl.hpp>
+#include <boost/fusion/view/reverse_view/detail/distance_impl.hpp>
+#include <boost/fusion/view/reverse_view/detail/value_of_impl.hpp>
+#include <boost/fusion/view/reverse_view/detail/equal_to_impl.hpp>
 
 namespace boost { namespace fusion
 {
-    struct reverse_view_tag;
     struct fusion_sequence_tag;
 
     template <typename Seq>
Deleted: sandbox/SOC/2009/fusion/boost/fusion/view/reverse_view/reverse_view_iterator.hpp
==============================================================================
--- sandbox/SOC/2009/fusion/boost/fusion/view/reverse_view/reverse_view_iterator.hpp	2009-07-10 18:07:00 EDT (Fri, 10 Jul 2009)
+++ (empty file)
@@ -1,49 +0,0 @@
-/*=============================================================================
-    Copyright (c) 2001-2006 Joel de Guzman
-
-    Distributed under 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_FUSION_VIEW_REVERSE_VIEW_REVERSE_VIEW_ITERATOR_HPP
-#define BOOST_FUSION_VIEW_REVERSE_VIEW_REVERSE_VIEW_ITERATOR_HPP
-
-#include <boost/fusion/support/iterator_base.hpp>
-#include <boost/fusion/support/category_of.hpp>
-#include <boost/fusion/support/assert.hpp>
-
-#include <boost/type_traits/is_base_of.hpp>
-
-#include <boost/fusion/view/reverse_view/detail/deref_impl.hpp>
-#include <boost/fusion/view/reverse_view/detail/next_impl.hpp>
-#include <boost/fusion/view/reverse_view/detail/prior_impl.hpp>
-#include <boost/fusion/view/reverse_view/detail/advance_impl.hpp>
-#include <boost/fusion/view/reverse_view/detail/distance_impl.hpp>
-#include <boost/fusion/view/reverse_view/detail/value_of_impl.hpp>
-#include <boost/fusion/view/reverse_view/detail/equal_to_impl.hpp>
-
-namespace boost { namespace fusion
-{
-    struct reverse_view_iterator_tag;
-
-    template <typename First>
-    struct reverse_view_iterator
-      : iterator_base<reverse_view_iterator<First> >
-    {
-        typedef First first_type;
-        typedef reverse_view_iterator_tag fusion_tag;
-        typedef typename traits::category_of<first_type>::type category;
-
-        //BOOST_FUSION_STATIC_ASSERT(
-        //    (is_base_of<bidirectional_traversal_tag, category>::value),
-        //    "underlying iterator must be bidirectional");
-
-        reverse_view_iterator(First const& first)
-          : first(first)
-        {}
-
-        first_type first;
-    };
-}}
-
-#endif
Modified: sandbox/SOC/2009/fusion/boost/fusion/view/single_view.hpp
==============================================================================
--- sandbox/SOC/2009/fusion/boost/fusion/view/single_view.hpp	(original)
+++ sandbox/SOC/2009/fusion/boost/fusion/view/single_view.hpp	2009-07-10 18:07:00 EDT (Fri, 10 Jul 2009)
@@ -9,6 +9,5 @@
 #define BOOST_FUSION_VIEW_SINGLE_VIEW_HPP
 
 #include <boost/fusion/view/single_view/single_view.hpp>
-#include <boost/fusion/view/single_view/single_view_iterator.hpp>
 
 #endif
Modified: sandbox/SOC/2009/fusion/boost/fusion/view/single_view/detail/begin_impl.hpp
==============================================================================
--- sandbox/SOC/2009/fusion/boost/fusion/view/single_view/detail/begin_impl.hpp	(original)
+++ sandbox/SOC/2009/fusion/boost/fusion/view/single_view/detail/begin_impl.hpp	2009-07-10 18:07:00 EDT (Fri, 10 Jul 2009)
@@ -8,34 +8,26 @@
 #ifndef BOOST_FUSION_VIEW_SINGLE_VIEW_DETAIL_BEGIN_IMPL_HPP
 #define BOOST_FUSION_VIEW_SINGLE_VIEW_DETAIL_BEGIN_IMPL_HPP
 
-namespace boost { namespace fusion
+namespace boost { namespace fusion { namespace extension
 {
-    struct single_view_tag;
+    template <typename Tag>
+    struct begin_impl;
 
-    template <typename T>
-    struct single_view_iterator;
-
-    namespace extension
+    template <>
+    struct begin_impl<single_view_tag>
     {
-        template <typename Tag>
-        struct begin_impl;
-
-        template <>
-        struct begin_impl<single_view_tag>
+        template <typename SeqRef>
+        struct apply
         {
-            template <typename SeqRef>
-            struct apply
-            {
-                typedef single_view_iterator<SeqRef> type;
+            typedef single_view_iterator<SeqRef> type;
 
-                static type
-                call(SeqRef s)
-                {
-                    return type(s,0);
-                }
-            };
+            static type
+            call(SeqRef s)
+            {
+                return type(s,0);
+            }
         };
-    }
-}}
+    };
+}}}
 
 #endif
Modified: sandbox/SOC/2009/fusion/boost/fusion/view/single_view/detail/deref_impl.hpp
==============================================================================
--- sandbox/SOC/2009/fusion/boost/fusion/view/single_view/detail/deref_impl.hpp	(original)
+++ sandbox/SOC/2009/fusion/boost/fusion/view/single_view/detail/deref_impl.hpp	2009-07-10 18:07:00 EDT (Fri, 10 Jul 2009)
@@ -11,33 +11,28 @@
 #include <boost/mpl/identity.hpp>
 #include <boost/type_traits/is_const.hpp>
 
-namespace boost { namespace fusion
+namespace boost { namespace fusion { namespace extension
 {
-    struct single_view_iterator_tag;
+    template <typename Tag>
+    struct deref_impl;
 
-    namespace extension
+    template <>
+    struct deref_impl<single_view_iterator_tag>
     {
-        template <typename Tag>
-        struct deref_impl;
-
-        template <>
-        struct deref_impl<single_view_iterator_tag>
+        template <typename ItRef>
+        struct apply
         {
-            template <typename ItRef>
-            struct apply
-            {
-                typedef typename
-                    detail::remove_reference<ItRef>::type::value_type
-                type;
+            typedef typename
+                detail::remove_reference<ItRef>::type::value_type
+            type;
 
-                static type
-                call(ItRef const& it)
-                {
-                    return it.view->val;
-                }
-            };
+            static type
+            call(ItRef const& it)
+            {
+                return it.view->val;
+            }
         };
-    }
-}}
+    };
+}}}
 
 #endif
Modified: sandbox/SOC/2009/fusion/boost/fusion/view/single_view/detail/end_impl.hpp
==============================================================================
--- sandbox/SOC/2009/fusion/boost/fusion/view/single_view/detail/end_impl.hpp	(original)
+++ sandbox/SOC/2009/fusion/boost/fusion/view/single_view/detail/end_impl.hpp	2009-07-10 18:07:00 EDT (Fri, 10 Jul 2009)
@@ -8,34 +8,26 @@
 #ifndef BOOST_FUSION_VIEW_SINGLE_VIEW_DETAIL_END_IMPL_HPP
 #define BOOST_FUSION_VIEW_SINGLE_VIEW_DETAIL_END_IMPL_HPP
 
-namespace boost { namespace fusion
+namespace boost { namespace fusion { namespace extension
 {
-    struct single_view_tag;
+    template <typename Tag>
+    struct end_impl;
 
-    template <typename T>
-    struct single_view_iterator_end;
-
-    namespace extension
+    template <>
+    struct end_impl<single_view_tag>
     {
-        template <typename Tag>
-        struct end_impl;
-
-        template <>
-        struct end_impl<single_view_tag>
+        template <typename SeqRef>
+        struct apply
         {
-            template <typename SeqRef>
-            struct apply
-            {
-                typedef single_view_iterator_end<SeqRef> type;
+            typedef single_view_iterator_end<SeqRef> type;
 
-                static type
-                call(SeqRef)
-                {
-                    return type();
-                }
-            };
+            static type
+            call(SeqRef)
+            {
+                return type();
+            }
         };
-    }
-}}
+    };
+}}}
 
 #endif
Modified: sandbox/SOC/2009/fusion/boost/fusion/view/single_view/detail/equal_to_impl.hpp
==============================================================================
--- sandbox/SOC/2009/fusion/boost/fusion/view/single_view/detail/equal_to_impl.hpp	(original)
+++ sandbox/SOC/2009/fusion/boost/fusion/view/single_view/detail/equal_to_impl.hpp	2009-07-10 18:07:00 EDT (Fri, 10 Jul 2009)
@@ -11,35 +11,30 @@
 
 #include <boost/type_traits/is_same.hpp>
 
-namespace boost { namespace fusion
+namespace boost { namespace fusion { namespace extension
 {
-    struct single_view_iterator_tag;
+    template<typename Tag>
+    struct equal_to_impl;
 
-    namespace extension
+    template<>
+    struct equal_to_impl<single_view_iterator_tag>
     {
-        template<typename Tag>
-        struct equal_to_impl;
-
-        template<>
-        struct equal_to_impl<single_view_iterator_tag>
-        {
-            template<typename It1Ref, typename It2Ref>
-            struct apply
-              : is_same<
-                    typename detail::identity<
-                        typename detail::remove_reference<
-                            It1Ref
-                        >::type::view_type
-                    >::type
-                  , typename detail::identity<
-                        typename detail::remove_reference<
-                            It2Ref
-                        >::type::view_type
-                    >::type
-                >
-            {};
-        };
-    }
-}}
+        template<typename It1Ref, typename It2Ref>
+        struct apply
+          : is_same<
+                typename detail::identity<
+                    typename detail::remove_reference<
+                        It1Ref
+                    >::type::view_type
+                >::type
+              , typename detail::identity<
+                    typename detail::remove_reference<
+                        It2Ref
+                    >::type::view_type
+                >::type
+            >
+        {};
+    };
+}}}
 
 #endif
Modified: sandbox/SOC/2009/fusion/boost/fusion/view/single_view/detail/next_impl.hpp
==============================================================================
--- sandbox/SOC/2009/fusion/boost/fusion/view/single_view/detail/next_impl.hpp	(original)
+++ sandbox/SOC/2009/fusion/boost/fusion/view/single_view/detail/next_impl.hpp	2009-07-10 18:07:00 EDT (Fri, 10 Jul 2009)
@@ -8,43 +8,32 @@
 #ifndef BOOST_FUSION_VIEW_SINGLE_VIEW_DETAIL_NEXT_IMPL_HPP
 #define BOOST_FUSION_VIEW_SINGLE_VIEW_DETAIL_NEXT_IMPL_HPP
 
-namespace boost { namespace fusion
+namespace boost { namespace fusion { namespace extension
 {
-    struct single_view_iterator_tag;
+    template <typename Tag>
+    struct next_impl;
 
-    template <typename SingleView>
-    struct single_view_iterator_end;
-
-    template <typename SingleView>
-    struct single_view_iterator;
-
-    namespace extension
+    template <>
+    struct next_impl<single_view_iterator_tag>
     {
-        template <typename Tag>
-        struct next_impl;
-
-        template <>
-        struct next_impl<single_view_iterator_tag>
+        template <typename ItRef>
+        struct apply
         {
-            template <typename ItRef>
-            struct apply
-            {
-                typedef
-                    single_view_iterator_end<
-                        typename detail::remove_reference<
-                            ItRef
-                        >::type::view_type
-                    >
-                type;
+            typedef
+                single_view_iterator_end<
+                    typename detail::remove_reference<
+                        ItRef
+                    >::type::view_type
+                >
+            type;
 
-                static type
-                call(ItRef)
-                {
-                    return type();
-                }
-            };
+            static type
+            call(ItRef)
+            {
+                return type();
+            }
         };
-    }
-}}
+    };
+}}}
 
 #endif
Added: sandbox/SOC/2009/fusion/boost/fusion/view/single_view/detail/single_view_fwd.hpp
==============================================================================
--- (empty file)
+++ sandbox/SOC/2009/fusion/boost/fusion/view/single_view/detail/single_view_fwd.hpp	2009-07-10 18:07:00 EDT (Fri, 10 Jul 2009)
@@ -0,0 +1,14 @@
+// Copyright Christopher Schmidt 2009.
+// Distributed under 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_FUSION_VIEW_SINGLE_VIEW_DETAIL_SINGLE_VIEW_FWD_HPP
+#define BOOST_FUSION_VIEW_SINGLE_VIEW_DETAIL_SINGLE_VIEW_FWD_HPP
+
+namespace boost { namespace fusion
+{
+    struct single_view_tag;
+}}
+
+#endif
Added: sandbox/SOC/2009/fusion/boost/fusion/view/single_view/detail/single_view_iterator.hpp
==============================================================================
--- (empty file)
+++ sandbox/SOC/2009/fusion/boost/fusion/view/single_view/detail/single_view_iterator.hpp	2009-07-10 18:07:00 EDT (Fri, 10 Jul 2009)
@@ -0,0 +1,69 @@
+/*=============================================================================
+    Copyright (c) 2001-2006 Joel de Guzman
+
+    Distributed under 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_FUSION_VIEW_SINGLE_VIEW_DETAIL_SINGLE_VIEW_ITERATOR_HPP
+#define BOOST_FUSION_VIEW_SINGLE_VIEW_DETAIL_SINGLE_VIEW_ITERATOR_HPP
+
+#include <boost/fusion/support/iterator_base.hpp>
+
+namespace boost { namespace fusion
+{
+    struct single_view_iterator_tag;
+    struct forward_traversal_tag;
+
+    struct void_;
+
+    //TODO???
+    template <typename SingleView>
+    struct single_view_iterator_end
+      : iterator_base<single_view_iterator_end<SingleView> >
+    {
+        typedef single_view_iterator_tag fusion_tag;
+        typedef forward_traversal_tag category;
+
+        typedef void_ view_type;
+    };
+
+    template <typename SingleViewRef>
+    struct single_view_iterator
+      : iterator_base<single_view_iterator<SingleViewRef> >
+    {
+        typedef single_view_iterator_tag fusion_tag;
+        typedef forward_traversal_tag category;
+
+        typedef SingleViewRef view_type;
+        typedef typename
+            detail::forward_as<
+                SingleViewRef,
+                typename detail::remove_reference<
+                    SingleViewRef
+                >::type::value_type
+            >::type
+        value_type;
+
+        template<typename OtherIt>
+        single_view_iterator(BOOST_FUSION_R_ELSE_CLREF(OtherIt) it)
+          : view(it.view)
+        {}
+
+        single_view_iterator(SingleViewRef view, int)
+          : view(&view)
+        {}
+
+        template<typename OtherIt>
+        single_view_iterator&
+        operator=(BOOST_FUSION_R_ELSE_CLREF(OtherIt) it)
+        {
+            view=it.view;
+            return *this;
+        }
+
+        typename detail::remove_reference<SingleViewRef>::type* view;
+    };
+}}
+
+#endif
Modified: sandbox/SOC/2009/fusion/boost/fusion/view/single_view/detail/value_of_impl.hpp
==============================================================================
--- sandbox/SOC/2009/fusion/boost/fusion/view/single_view/detail/value_of_impl.hpp	(original)
+++ sandbox/SOC/2009/fusion/boost/fusion/view/single_view/detail/value_of_impl.hpp	2009-07-10 18:07:00 EDT (Fri, 10 Jul 2009)
@@ -8,31 +8,26 @@
 #ifndef BOOST_FUSION_VIEW_SINGLE_VIEW_DETAIL_VALUE_OF_IMPL_HPP
 #define BOOST_FUSION_VIEW_SINGLE_VIEW_DETAIL_VALUE_OF_IMPL_HPP
 
-namespace boost { namespace fusion
+namespace boost { namespace fusion { namespace extension
 {
-    struct single_view_iterator_tag;
+    template <typename Tag>
+    struct value_of_impl;
 
-    namespace extension
+    template <>
+    struct value_of_impl<single_view_iterator_tag>
     {
-        template <typename Tag>
-        struct value_of_impl;
-
-        template <>
-        struct value_of_impl<single_view_iterator_tag>
+        template <typename ItRef>
+        struct apply
         {
-            template <typename ItRef>
-            struct apply
-            {
-                typedef typename
-                    detail::remove_reference<
-                        typename detail::remove_reference<
-                            ItRef
-                        >::type::view_type
-                    >::type::value_type
-                type;
-            };
+            typedef typename
+                detail::remove_reference<
+                    typename detail::remove_reference<
+                        ItRef
+                    >::type::view_type
+                >::type::value_type
+            type;
         };
-    }
-}}
+    };
+}}}
 
 #endif
Modified: sandbox/SOC/2009/fusion/boost/fusion/view/single_view/single_view.hpp
==============================================================================
--- sandbox/SOC/2009/fusion/boost/fusion/view/single_view/single_view.hpp	(original)
+++ sandbox/SOC/2009/fusion/boost/fusion/view/single_view/single_view.hpp	2009-07-10 18:07:00 EDT (Fri, 10 Jul 2009)
@@ -22,9 +22,14 @@
 #include <boost/mpl/int.hpp>
 #include <boost/utility/enable_if.hpp>
 
-#include <boost/fusion/view/single_view/single_view_iterator.hpp>
+#include <boost/fusion/view/single_view/detail/single_view_fwd.hpp>
+#include <boost/fusion/view/single_view/detail/single_view_iterator.hpp>
 #include <boost/fusion/view/single_view/detail/begin_impl.hpp>
 #include <boost/fusion/view/single_view/detail/end_impl.hpp>
+#include <boost/fusion/view/single_view/detail/deref_impl.hpp>
+#include <boost/fusion/view/single_view/detail/next_impl.hpp>
+#include <boost/fusion/view/single_view/detail/value_of_impl.hpp>
+#include <boost/fusion/view/single_view/detail/equal_to_impl.hpp>
 
 namespace boost { namespace fusion
 {
Deleted: sandbox/SOC/2009/fusion/boost/fusion/view/single_view/single_view_iterator.hpp
==============================================================================
--- sandbox/SOC/2009/fusion/boost/fusion/view/single_view/single_view_iterator.hpp	2009-07-10 18:07:00 EDT (Fri, 10 Jul 2009)
+++ (empty file)
@@ -1,75 +0,0 @@
-/*=============================================================================
-    Copyright (c) 2001-2006 Joel de Guzman
-
-    Distributed under 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_FUSION_VIEW_SINGLE_VIEW_SINGLE_VIEW_ITERATOR_HPP
-#define BOOST_FUSION_VIEW_SINGLE_VIEW_SINGLE_VIEW_ITERATOR_HPP
-
-#include <boost/fusion/support/ref.hpp>
-#include <boost/fusion/support/iterator_base.hpp>
-
-#include <boost/fusion/view/single_view/detail/deref_impl.hpp>
-#include <boost/fusion/view/single_view/detail/next_impl.hpp>
-#include <boost/fusion/view/single_view/detail/value_of_impl.hpp>
-#include <boost/fusion/view/single_view/detail/equal_to_impl.hpp>
-
-namespace boost { namespace fusion
-{
-    struct single_view_iterator_tag;
-    struct forward_traversal_tag;
-
-    struct void_;
-
-    //TODO???
-    template <typename SingleView>
-    struct single_view_iterator_end
-      : iterator_base<single_view_iterator_end<SingleView> >
-    {
-        typedef single_view_iterator_tag fusion_tag;
-        typedef forward_traversal_tag category;
-
-        typedef void_ view_type;
-    };
-
-    template <typename SingleViewRef>
-    struct single_view_iterator
-      : iterator_base<single_view_iterator<SingleViewRef> >
-    {
-        typedef single_view_iterator_tag fusion_tag;
-        typedef forward_traversal_tag category;
-
-        typedef SingleViewRef view_type;
-        typedef typename
-            detail::result_of_forward_as<
-                SingleViewRef,
-                typename detail::remove_reference<
-                    SingleViewRef
-                >::type::value_type
-            >::type
-        value_type;
-
-        template<typename OtherIt>
-        single_view_iterator(BOOST_FUSION_R_ELSE_CLREF(OtherIt) it)
-          : view(it.view)
-        {}
-
-        single_view_iterator(SingleViewRef view, int)
-          : view(&view)
-        {}
-
-        template<typename OtherIt>
-        single_view_iterator&
-        operator=(BOOST_FUSION_R_ELSE_CLREF(OtherIt) it)
-        {
-            view=it.view;
-            return *this;
-        }
-
-        typename detail::remove_reference<SingleViewRef>::type* view;
-    };
-}}
-
-#endif
Modified: sandbox/SOC/2009/fusion/boost/fusion/view/transform_view.hpp
==============================================================================
--- sandbox/SOC/2009/fusion/boost/fusion/view/transform_view.hpp	(original)
+++ sandbox/SOC/2009/fusion/boost/fusion/view/transform_view.hpp	2009-07-10 18:07:00 EDT (Fri, 10 Jul 2009)
@@ -9,6 +9,5 @@
 #define BOOST_FUSION_VIEW_TRANSFORM_VIEW_HPP
 
 #include <boost/fusion/view/transform_view/transform_view.hpp>
-#include <boost/fusion/view/transform_view/transform_view_iterator.hpp>
 
 #endif
Modified: sandbox/SOC/2009/fusion/boost/fusion/view/transform_view/detail/advance_impl.hpp
==============================================================================
--- sandbox/SOC/2009/fusion/boost/fusion/view/transform_view/detail/advance_impl.hpp	(original)
+++ sandbox/SOC/2009/fusion/boost/fusion/view/transform_view/detail/advance_impl.hpp	2009-07-10 18:07:00 EDT (Fri, 10 Jul 2009)
@@ -11,86 +11,74 @@
 
 #include <boost/fusion/iterator/advance.hpp>
 
-namespace boost { namespace fusion
+namespace boost { namespace fusion { namespace extension
 {
-    struct transform_view_iterator_tag;
-    struct transform_view_iterator2_tag;
+    template<typename Tag>
+    struct advance_impl;
 
-    template<typename First, typename F>
-    struct transform_view_iterator;
-
-    template <typename First1, typename First2, typename F>
-    struct transform_view_iterator2;
-
-    namespace extension
+    // Unary Version
+    template<>
+    struct advance_impl<transform_view_iterator_tag>
     {
-        template<typename Tag>
-        struct advance_impl;
-
-        // Unary Version
-        template<>
-        struct advance_impl<transform_view_iterator_tag>
+        template<typename ItRef, typename Dist>
+        struct apply
         {
-            template<typename ItRef, typename Dist>
-            struct apply
+            typedef typename
+                detail::remove_reference<ItRef>::type
+            it;
+
+            typedef
+                transform_view_iterator<
+                    typename result_of::advance<
+                        typename it::first_type
+                      , Dist
+                    >::type
+                  , typename it::transform_type
+                >
+            type;
+
+            static type
+            call(ItRef it)
             {
-                typedef typename
-                    detail::remove_reference<ItRef>::type
-                it;
-
-                typedef
-                    transform_view_iterator<
-                        typename result_of::advance<
-                            typename it::first_type
-                          , Dist
-                        >::type
-                      , typename it::transform_type
-                    >
-                type;
-
-                static type
-                call(ItRef it)
-                {
-                    return type(boost::fusion::advance<Dist>(it.first), *it.f);
-                }
-            };
+                return type(boost::fusion::advance<Dist>(it.first), *it.f);
+            }
         };
+    };
 
-        // Binary Version
-        template<>
-        struct advance_impl<transform_view_iterator2_tag>
+    // Binary Version
+    template<>
+    struct advance_impl<transform_view_iterator2_tag>
+    {
+        template<typename ItRef, typename Dist>
+        struct apply
         {
-            template<typename ItRef, typename Dist>
-            struct apply
+            typedef typename
+                detail::remove_reference<ItRef>::type
+            it;
+
+            typedef
+                transform_view_iterator2<
+                    typename result_of::advance<
+                        typename it::first1_type
+                      , Dist
+                    >::type
+                  , typename result_of::advance<
+                        typename it::first2_type
+                      , Dist
+                    >::type
+                  , typename it::transform_type
+                >
+            type;
+
+            static type
+            call(ItRef it)
             {
-                typedef typename
-                    detail::remove_reference<ItRef>::type
-                it;
-
-                typedef
-                    transform_view_iterator2<
-                        typename result_of::advance<
-                            typename it::first1_type
-                          , Dist
-                        >::type
-                      , typename result_of::advance<
-                            typename it::first2_type
-                          , Dist
-                        >::type
-                      , typename it::transform_type
-                    >
-                type;
-
-                static type
-                call(ItRef it)
-                {
-                    return type(boost::fusion::advance<Dist>(it.first1)
-                              , boost::fusion::advance<Dist>(it.first2)
-                              , it.f);
-                }
-            };
+                return type(boost::fusion::advance<Dist>(it.first1)
+                          , boost::fusion::advance<Dist>(it.first2)
+                          , it.f);
+            }
         };
-    }
-}}
+    };
+}}}
 
 #endif
Modified: sandbox/SOC/2009/fusion/boost/fusion/view/transform_view/detail/at_impl.hpp
==============================================================================
--- sandbox/SOC/2009/fusion/boost/fusion/view/transform_view/detail/at_impl.hpp	(original)
+++ sandbox/SOC/2009/fusion/boost/fusion/view/transform_view/detail/at_impl.hpp	2009-07-10 18:07:00 EDT (Fri, 10 Jul 2009)
@@ -9,82 +9,77 @@
 #ifndef BOOST_FUSION_VIEW_TRANSFORM_VIEW_DETAIL_AT_IMPL_HPP
 #define BOOST_FUSION_VIEW_TRANSFORM_VIEW_DETAIL_AT_IMPL_HPP
 
-#include <boost/fusion/view/transform_view/detail/apply_transform_result.hpp>
 #include <boost/fusion/sequence/intrinsic/at.hpp>
 
 #include <boost/mpl/apply.hpp>
 
-namespace boost { namespace fusion
+#include <boost/fusion/view/transform_view/detail/apply_transform_result.hpp>
+
+namespace boost { namespace fusion { namespace extension
 {
-    struct transform_view_tag;
-    struct transform_view2_tag;
+    template<typename Tag>
+    struct at_impl;
 
-    namespace extension
+    template<>
+    struct at_impl<transform_view_tag>
     {
-        template<typename Tag>
-        struct at_impl;
-
-        template<>
-        struct at_impl<transform_view_tag>
+        template<typename SeqRef, typename N>
+        struct apply
         {
-            template<typename SeqRef, typename N>
-            struct apply
-            {
-                typedef typename detail::remove_reference<SeqRef>::type seq;
+            typedef typename detail::remove_reference<SeqRef>::type seq;
 
-                typedef typename
-                    mpl::apply<
-                        detail::apply_transform_result<
-                            typename seq::transform_type
-                        >
-                      , typename result_of::at<
-                            typename seq::seq_type
-                          , N
-                        >::type
+            typedef typename
+                mpl::apply<
+                    detail::apply_transform_result<
+                        typename seq::transform_type
+                    >
+                  , typename result_of::at<
+                        typename seq::seq_type
+                      , N
                     >::type
-                type;
+                >::type
+            type;
 
-                static type
-                call(SeqRef seq)
-                {
-                    return seq.f(boost::fusion::at<N>(seq.seq.get()));
-                }
-            };
+            static type
+            call(SeqRef seq)
+            {
+                return seq.f(boost::fusion::at<N>(seq.seq.get()));
+            }
         };
+    };
 
-        template<>
-        struct at_impl<transform_view2_tag>
+    template<>
+    struct at_impl<transform_view2_tag>
+    {
+        template<typename SeqRef, typename N>
+        struct apply
         {
-            template<typename SeqRef, typename N>
-            struct apply
-            {
-                typedef typename detail::remove_reference<SeqRef>::type seq;
+            typedef typename detail::remove_reference<SeqRef>::type seq;
 
-                typedef typename
-                    mpl::apply<
-                        detail::apply_transform_result<
-                            typename seq::transform_type
-                        >
-                      , typename boost::fusion::result_of::at<
-                            typename seq::seq1_type
-                          , N
-                        >::type
-                      , typename boost::fusion::result_of::at<
-                            typename seq::seq2_type
-                          , N
-                        >::type
+            typedef typename
+                mpl::apply<
+                    detail::apply_transform_result<
+                        typename seq::transform_type
+                    >
+                  , typename boost::fusion::result_of::at<
+                        typename seq::seq1_type
+                      , N
                     >::type
-                type;
+                  , typename boost::fusion::result_of::at<
+                        typename seq::seq2_type
+                      , N
+                    >::type
+                >::type
+            type;
 
-                static type call(SeqRef seq)
-                {
-                    return seq.f(
-                            boost::fusion::at<N>(seq.seq1.get()),
-                            boost::fusion::at<N>(seq.seq2.get()));
-                }
-            };
+            static type call(SeqRef seq)
+            {
+                return seq.f(
+                        boost::fusion::at<N>(seq.seq1.get()),
+                        boost::fusion::at<N>(seq.seq2.get()));
+            }
         };
-    }
-}}
+    };
+}}}
 
 #endif
Modified: sandbox/SOC/2009/fusion/boost/fusion/view/transform_view/detail/begin_impl.hpp
==============================================================================
--- sandbox/SOC/2009/fusion/boost/fusion/view/transform_view/detail/begin_impl.hpp	(original)
+++ sandbox/SOC/2009/fusion/boost/fusion/view/transform_view/detail/begin_impl.hpp	2009-07-10 18:07:00 EDT (Fri, 10 Jul 2009)
@@ -9,81 +9,71 @@
 #define BOOST_FUSION_VIEW_TRANSFORM_VIEW_DETAIL_BEGIN_IMPL_HPP
 
 #include <boost/fusion/sequence/intrinsic/begin.hpp>
-#include <boost/fusion/view/transform_view/transform_view_fwd.hpp>
 
-namespace boost { namespace fusion
+namespace boost { namespace fusion { namespace extension
 {
-    template <typename First, typename F>
-    struct transform_view_iterator;
+    template <typename Tag>
+    struct begin_impl;
 
-    template <typename First1, typename First2, typename F>
-    struct transform_view_iterator2;
-
-    namespace extension
+    // Unary Version
+    template <>
+    struct begin_impl<transform_view_tag>
     {
-        template <typename Tag>
-        struct begin_impl;
-
-        // Unary Version
-        template <>
-        struct begin_impl<transform_view_tag>
+        template <typename SeqRef>
+        struct apply
         {
-            template <typename SeqRef>
-            struct apply
+            typedef typename
+                detail::remove_reference<SeqRef>::type
+            seq;
+
+            typedef
+                transform_view_iterator<
+                    typename result_of::begin<typename seq::seq_type>::type
+                  , typename detail::forward_as<
+                        SeqRef
+                      , typename seq::transform_type
+                    >::type
+                >
+            type;
+
+            static type
+            call(SeqRef seq)
             {
-                typedef typename
-                    detail::remove_reference<SeqRef>::type
-                seq;
-
-                typedef
-                    transform_view_iterator<
-                        typename result_of::begin<typename seq::seq_type>::type
-                      , typename detail::result_of_forward_as<
-                            SeqRef
-                          , typename seq::transform_type
-                        >::type
-                    >
-                type;
-
-                static type
-                call(SeqRef seq)
-                {
-                    return type(fusion::begin(seq.seq.get()), seq.f);
-                }
-            };
+                return type(fusion::begin(seq.seq.get()), seq.f);
+            }
         };
+    };
 
-        // Binary Version
-        template <>
-        struct begin_impl<transform_view2_tag>
+    // Binary Version
+    template <>
+    struct begin_impl<transform_view2_tag>
+    {
+        template <typename SeqRef>
+        struct apply
         {
-            template <typename SeqRef>
-            struct apply
-            {
-                typedef typename detail::remove_reference<SeqRef>::type seq;
+            typedef typename detail::remove_reference<SeqRef>::type seq;
+
+            typedef
+                transform_view_iterator2<
+                    typename result_of::begin<typename seq::seq1_type>::type
+                  , typename result_of::begin<typename seq::seq2_type>::type
+                  , typename detail::forward_as<
+                        SeqRef
+                      , typename seq::transform_type
+                    >::type
+                >
+            type;
 
-                typedef
-                    transform_view_iterator2<
-                        typename result_of::begin<typename seq::seq1_type>::type
-                      , typename result_of::begin<typename seq::seq2_type>::type
-                      , typename detail::result_of_forward_as<
-                            SeqRef
-                          , typename seq::transform_type
-                        >::type
-                    >
-                type;
-
-                static type
-                call(SeqRef seq)
-                {
-                    return type(
-                            fusion::begin(seq.seq1.get()),
-                            fusion::begin(seq.seq2.get()),
-                            seq.f);
-                }
-            };
+            static type
+            call(SeqRef seq)
+            {
+                return type(
+                        fusion::begin(seq.seq1.get()),
+                        fusion::begin(seq.seq2.get()),
+                        seq.f);
+            }
         };
-    }
-}}
+    };
+}}}
 
 #endif
Modified: sandbox/SOC/2009/fusion/boost/fusion/view/transform_view/detail/deref_impl.hpp
==============================================================================
--- sandbox/SOC/2009/fusion/boost/fusion/view/transform_view/detail/deref_impl.hpp	(original)
+++ sandbox/SOC/2009/fusion/boost/fusion/view/transform_view/detail/deref_impl.hpp	2009-07-10 18:07:00 EDT (Fri, 10 Jul 2009)
@@ -8,85 +8,81 @@
 #ifndef BOOST_FUSION_VIEW_TRANSFORM_VIEW_DETAIL_DEREF_IMPL_HPP
 #define BOOST_FUSION_VIEW_TRANSFORM_VIEW_DETAIL_DEREF_IMPL_HPP
 
-#include <boost/mpl/apply.hpp>
 #include <boost/fusion/iterator/deref.hpp>
 #include <boost/fusion/iterator/value_of.hpp>
+
+#include <boost/mpl/apply.hpp>
+
 #include <boost/fusion/view/transform_view/detail/apply_transform_result.hpp>
 
-namespace boost { namespace fusion
+namespace boost { namespace fusion { namespace extension
 {
-    struct transform_view_iterator_tag;
-    struct transform_view_iterator2_tag;
+    template <typename Tag>
+    struct deref_impl;
 
-    namespace extension
+    // Unary Version
+    template <>
+    struct deref_impl<transform_view_iterator_tag>
     {
-        template <typename Tag>
-        struct deref_impl;
-
-        // Unary Version
-        template <>
-        struct deref_impl<transform_view_iterator_tag>
+        template <typename ItRef>
+        struct apply
         {
-            template <typename ItRef>
-            struct apply
-            {
-                typedef typename
-                    detail::remove_reference<ItRef>::type
-                it;
-
-                //TODO: return only const
-                typedef typename
-                    mpl::apply<
-                        detail::apply_transform_result<
-                            typename it::transform_type
-                        >
-                      , typename result_of::deref<
-                            typename it::first_type
-                        >::type
+            typedef typename
+                detail::remove_reference<ItRef>::type
+            it;
+
+            //TODO: return only const
+            typedef typename
+                mpl::apply<
+                    detail::apply_transform_result<
+                        typename it::transform_type
+                    >
+                  , typename result_of::deref<
+                        typename it::first_type
                     >::type
-                type;
+                >::type
+            type;
 
-                static type
-                call(ItRef it)
-                {
-                    return (*it.f)(fusion::deref(it.first));
-                }
-            };
+            static type
+            call(ItRef it)
+            {
+                return (*it.f)(fusion::deref(it.first));
+            }
         };
+    };
 
-        // Binary Version
-        template <>
-        struct deref_impl<transform_view_iterator2_tag>
+    // Binary Version
+    template <>
+    struct deref_impl<transform_view_iterator2_tag>
+    {
+        template <typename ItRef>
+        struct apply
         {
-            template <typename ItRef>
-            struct apply
-            {
-                typedef typename detail::remove_reference<ItRef>::type it;
+            typedef typename detail::remove_reference<ItRef>::type it;
 
-                typedef typename
-                    mpl::apply<
-                        detail::apply_transform_result<
-                            typename it::transform_type
-                        >
-                      , typename result_of::deref<
-                            typename it::first1_type
-                        >::type
-                      , typename result_of::deref<
-                            typename it::first2_type
-                        >::type
+            typedef typename
+                mpl::apply<
+                    detail::apply_transform_result<
+                        typename it::transform_type
+                    >
+                  , typename result_of::deref<
+                        typename it::first1_type
                     >::type
-                type;
+                  , typename result_of::deref<
+                        typename it::first2_type
+                    >::type
+                >::type
+            type;
 
-                static type
-                call(ItRef it)
-                {
-                    return (*it.f)(
-                            fusion::deref(it.first1)
-                          , fusion::deref(it.first2));
-                }
-            };
+            static type
+            call(ItRef it)
+            {
+                return (*it.f)(
+                        fusion::deref(it.first1)
+                      , fusion::deref(it.first2));
+            }
         };
-    }
-}}
+    };
+}}}
 
 #endif
Modified: sandbox/SOC/2009/fusion/boost/fusion/view/transform_view/detail/distance_impl.hpp
==============================================================================
--- sandbox/SOC/2009/fusion/boost/fusion/view/transform_view/detail/distance_impl.hpp	(original)
+++ sandbox/SOC/2009/fusion/boost/fusion/view/transform_view/detail/distance_impl.hpp	2009-07-10 18:07:00 EDT (Fri, 10 Jul 2009)
@@ -11,44 +11,38 @@
 
 #include <boost/fusion/iterator/distance.hpp>
 
-namespace boost { namespace fusion {
-
-    struct transform_view_iterator_tag;
-    struct transform_view_iterator2_tag;
-
-    namespace extension
+namespace boost { namespace fusion { namespace extension
+{
+    template<typename Tag>
+    struct distance_impl;
+
+    // Unary Version
+    template<>
+    struct distance_impl<transform_view_iterator_tag>
     {
-        template<typename Tag>
-        struct distance_impl;
-
-        // Unary Version
-        template<>
-        struct distance_impl<transform_view_iterator_tag>
+        template<typename First, typename Last>
+        struct apply
+          : result_of::distance<
+                typename detail::remove_reference<First>::type::first_type
+              , typename detail::remove_reference<Last>::type::first_type
+            >
         {
-            template<typename First, typename Last>
-            struct apply
-              : result_of::distance<
-                    typename detail::remove_reference<First>::type::first_type
-                  , typename detail::remove_reference<Last>::type::first_type
-                >
-            {
-            };
         };
+    };
 
-        // Binary Version
-        template<>
-        struct distance_impl<transform_view_iterator2_tag>
+    // Binary Version
+    template<>
+    struct distance_impl<transform_view_iterator2_tag>
+    {
+        template<typename First, typename Last>
+        struct apply
+          : result_of::distance<
+                typename detail::remove_reference<First>::type::first1_type
+              , typename detail::remove_reference<Last>::type::first1_type
+            >
         {
-            template<typename First, typename Last>
-            struct apply
-              : result_of::distance<
-                    typename detail::remove_reference<First>::type::first1_type
-                  , typename detail::remove_reference<Last>::type::first1_type
-                >
-            {
-            };
         };
-    }
-}}
+    };
+}}}
 
 #endif
Modified: sandbox/SOC/2009/fusion/boost/fusion/view/transform_view/detail/end_impl.hpp
==============================================================================
--- sandbox/SOC/2009/fusion/boost/fusion/view/transform_view/detail/end_impl.hpp	(original)
+++ sandbox/SOC/2009/fusion/boost/fusion/view/transform_view/detail/end_impl.hpp	2009-07-10 18:07:00 EDT (Fri, 10 Jul 2009)
@@ -9,79 +9,69 @@
 #define BOOST_FUSION_VIEW_TRANSFORM_VIEW_DETAIL_END_IMPL_HPP
 
 #include <boost/fusion/sequence/intrinsic/end.hpp>
-#include <boost/fusion/view/transform_view/transform_view_fwd.hpp>
 
-namespace boost { namespace fusion
+namespace boost { namespace fusion { namespace extension
 {
-    template <typename First, typename F>
-    struct transform_view_iterator;
+    template <typename Tag>
+    struct end_impl;
 
-    template <typename First1, typename First2, typename F>
-    struct transform_view_iterator2;
-
-    namespace extension
+    // Unary Version
+    template <>
+    struct end_impl<transform_view_tag>
     {
-        template <typename Tag>
-        struct end_impl;
-
-        // Unary Version
-        template <>
-        struct end_impl<transform_view_tag>
+        template <typename SeqRef>
+        struct apply
         {
-            template <typename SeqRef>
-            struct apply
-            {
-                typedef typename detail::remove_reference<SeqRef>::type seq;
+            typedef typename detail::remove_reference<SeqRef>::type seq;
 
-                typedef
-                    transform_view_iterator<
-                        typename result_of::end<typename seq::seq_type>::type
-                      , typename detail::result_of_forward_as<
-                            SeqRef
-                          , typename seq::transform_type
-                        >::type
-                    >
-                type;
-
-                static type
-                call(SeqRef seq)
-                {
-                    return type(fusion::end(seq.seq.get()), seq.f);
-                }
-            };
+            typedef
+                transform_view_iterator<
+                    typename result_of::end<typename seq::seq_type>::type
+                  , typename detail::forward_as<
+                        SeqRef
+                      , typename seq::transform_type
+                    >::type
+                >
+            type;
+
+            static type
+            call(SeqRef seq)
+            {
+                return type(fusion::end(seq.seq.get()), seq.f);
+            }
         };
+    };
 
-        // Binary Version
-        template <>
-        struct end_impl<transform_view2_tag>
+    // Binary Version
+    template <>
+    struct end_impl<transform_view2_tag>
+    {
+        template <typename SeqRef>
+        struct apply
         {
-            template <typename SeqRef>
-            struct apply
-            {
-                typedef typename detail::remove_reference<SeqRef>::type seq;
+            typedef typename detail::remove_reference<SeqRef>::type seq;
 
-                typedef
-                    transform_view_iterator2<
-                        typename result_of::end<typename seq::seq1_type>::type
-                      , typename result_of::end<typename seq::seq2_type>::type
-                      , typename detail::result_of_forward_as<
-                            SeqRef
-                          , typename seq::transform_type
-                        >::type
-                    >
-                type;
-
-                static type
-                call(SeqRef seq)
-                {
-                    return type(
-                            fusion::end(seq.seq1.get())
-                          , fusion::end(seq.seq2.get())
-                          , seq.f);
-                }
-            };
+            typedef
+                transform_view_iterator2<
+                    typename result_of::end<typename seq::seq1_type>::type
+                  , typename result_of::end<typename seq::seq2_type>::type
+                  , typename detail::forward_as<
+                        SeqRef
+                      , typename seq::transform_type
+                    >::type
+                >
+            type;
+
+            static type
+            call(SeqRef seq)
+            {
+                return type(
+                        fusion::end(seq.seq1.get())
+                      , fusion::end(seq.seq2.get())
+                      , seq.f);
+            }
         };
-    }
-}}
+    };
+}}}
 
 #endif
Modified: sandbox/SOC/2009/fusion/boost/fusion/view/transform_view/detail/equal_to_impl.hpp
==============================================================================
--- sandbox/SOC/2009/fusion/boost/fusion/view/transform_view/detail/equal_to_impl.hpp	(original)
+++ sandbox/SOC/2009/fusion/boost/fusion/view/transform_view/detail/equal_to_impl.hpp	2009-07-10 18:07:00 EDT (Fri, 10 Jul 2009)
@@ -10,40 +10,34 @@
 
 #include <boost/fusion/iterator/equal_to.hpp>
 
-namespace boost { namespace fusion {
+namespace boost { namespace fusion { namespace extension
+{
+    template<typename Tag>
+    struct equal_to_impl;
 
-    struct transform_view_iterator_tag;
-    struct transform_view_iterator2_tag;
-
-    namespace extension
+    template<>
+    struct equal_to_impl<transform_view_iterator_tag>
     {
-        template<typename Tag>
-        struct equal_to_impl;
-
-        template<>
-        struct equal_to_impl<transform_view_iterator_tag>
-        {
-            template<typename ItRef1, typename ItRef2>
-            struct apply
-              : result_of::equal_to<
-                    typename detail::remove_reference<ItRef1>::type::first_type
-                  , typename detail::remove_reference<ItRef2>::type::first_type
-                >
-            {};
-        };
+        template<typename ItRef1, typename ItRef2>
+        struct apply
+          : result_of::equal_to<
+                typename detail::remove_reference<ItRef1>::type::first_type
+              , typename detail::remove_reference<ItRef2>::type::first_type
+            >
+        {};
+    };
 
-        template<>
-        struct equal_to_impl<transform_view_iterator2_tag>
-        {
-            template<typename ItRef1, typename ItRef2>
-            struct apply
-              : result_of::equal_to<
-                    typename detail::remove_reference<ItRef1>::type::first1_type
-                  , typename detail::remove_reference<ItRef2>::type::first1_type
-                >
-            {};
-        };
-    }
-}}
+    template<>
+    struct equal_to_impl<transform_view_iterator2_tag>
+    {
+        template<typename ItRef1, typename ItRef2>
+        struct apply
+          : result_of::equal_to<
+                typename detail::remove_reference<ItRef1>::type::first1_type
+              , typename detail::remove_reference<ItRef2>::type::first1_type
+            >
+        {};
+    };
+}}}
 
 #endif
Modified: sandbox/SOC/2009/fusion/boost/fusion/view/transform_view/detail/next_impl.hpp
==============================================================================
--- sandbox/SOC/2009/fusion/boost/fusion/view/transform_view/detail/next_impl.hpp	(original)
+++ sandbox/SOC/2009/fusion/boost/fusion/view/transform_view/detail/next_impl.hpp	2009-07-10 18:07:00 EDT (Fri, 10 Jul 2009)
@@ -10,79 +10,67 @@
 
 #include <boost/fusion/iterator/next.hpp>
 
-namespace boost { namespace fusion
+namespace boost { namespace fusion { namespace extension
 {
-    struct transform_view_iterator_tag;
-    struct transform_view_iterator2_tag;
+    template <typename Tag>
+    struct next_impl;
 
-    template<typename First, typename F>
-    struct transform_view_iterator;
-
-    template <typename First1, typename First2, typename F>
-    struct transform_view_iterator2;
-
-    namespace extension
+    // Unary Version
+    template <>
+    struct next_impl<transform_view_iterator_tag>
     {
-        template <typename Tag>
-        struct next_impl;
-
-        // Unary Version
-        template <>
-        struct next_impl<transform_view_iterator_tag>
+        template <typename ItRef>
+        struct apply
         {
-            template <typename ItRef>
-            struct apply
-            {
-                typedef typename detail::remove_reference<ItRef>::type it;
+            typedef typename detail::remove_reference<ItRef>::type it;
+
+            typedef
+                transform_view_iterator<
+                    typename result_of::next<
+                        typename it::first_type
+                    >::type
+                  , typename it::transform_type
+                >
+            type;
 
-                typedef
-                    transform_view_iterator<
-                        typename result_of::next<
-                            typename it::first_type
-                        >::type
-                      , typename it::transform_type
-                    >
-                type;
-
-                static type
-                call(ItRef it)
-                {
-                    return type(fusion::next(it.first), *it.f);
-                }
-            };
+            static type
+            call(ItRef it)
+            {
+                return type(fusion::next(it.first), *it.f);
+            }
         };
+    };
 
-        // Binary Version
-        template <>
-        struct next_impl<transform_view_iterator2_tag>
+    // Binary Version
+    template <>
+    struct next_impl<transform_view_iterator2_tag>
+    {
+        template <typename ItRef>
+        struct apply
         {
-            template <typename ItRef>
-            struct apply
-            {
-                typedef typename detail::remove_reference<ItRef>::type it;
+            typedef typename detail::remove_reference<ItRef>::type it;
 
-                typedef
-                    transform_view_iterator2<
-                        typename result_of::next<
-                            typename it::first1_type
-                        >::type
-                      , typename result_of::next<
-                            typename it::first2_type
-                        >::type
-                      , typename it::transform_type
-                    >
-                type;
-
-                static type
-                call(ItRef it)
-                {
-                    return type(fusion::next(it.first1),
-                            fusion::next(it.first2),
-                            *it.f);
-                }
-            };
+            typedef
+                transform_view_iterator2<
+                    typename result_of::next<
+                        typename it::first1_type
+                    >::type
+                  , typename result_of::next<
+                        typename it::first2_type
+                    >::type
+                  , typename it::transform_type
+                >
+            type;
+
+            static type
+            call(ItRef it)
+            {
+                return type(fusion::next(it.first1),
+                        fusion::next(it.first2),
+                        *it.f);
+            }
         };
-    }
-}}
+    };
+}}}
 
 #endif
Modified: sandbox/SOC/2009/fusion/boost/fusion/view/transform_view/detail/prior_impl.hpp
==============================================================================
--- sandbox/SOC/2009/fusion/boost/fusion/view/transform_view/detail/prior_impl.hpp	(original)
+++ sandbox/SOC/2009/fusion/boost/fusion/view/transform_view/detail/prior_impl.hpp	2009-07-10 18:07:00 EDT (Fri, 10 Jul 2009)
@@ -11,81 +11,69 @@
 
 #include <boost/fusion/iterator/prior.hpp>
 
-namespace boost { namespace fusion
+namespace boost { namespace fusion { namespace extension
 {
-    struct transform_view_iterator_tag;
-    struct transform_view_iterator2_tag;
+    template<typename Tag>
+    struct prior_impl;
 
-    template<typename First, typename F>
-    struct transform_view_iterator;
-
-    template <typename First1, typename First2, typename F>
-    struct transform_view_iterator2;
-
-    namespace extension
+    // Unary Version
+    template<>
+    struct prior_impl<transform_view_iterator_tag>
     {
-        template<typename Tag>
-        struct prior_impl;
-
-        // Unary Version
-        template<>
-        struct prior_impl<transform_view_iterator_tag>
+        template<typename ItRef>
+        struct apply
         {
-            template<typename ItRef>
-            struct apply
-            {
-                typedef typename detail::remove_reference<ItRef>::type it;
+            typedef typename detail::remove_reference<ItRef>::type it;
 
-                typedef
-                    transform_view_iterator<
-                        typename result_of::prior<
-                            typename it::first_type
-                        >::type
-                      , typename it::transform_type
-                    >
-                type;
-
-                static type
-                call(ItRef it)
-                {
-                    return type(fusion::prior(it.first), *it.f);
-                }
-            };
+            typedef
+                transform_view_iterator<
+                    typename result_of::prior<
+                        typename it::first_type
+                    >::type
+                  , typename it::transform_type
+                >
+            type;
+
+            static type
+            call(ItRef it)
+            {
+                return type(fusion::prior(it.first), *it.f);
+            }
         };
+    };
 
-        // Binary Version
-        template<>
-        struct prior_impl<transform_view_iterator2_tag>
+    // Binary Version
+    template<>
+    struct prior_impl<transform_view_iterator2_tag>
+    {
+        template<typename ItRef>
+        struct apply
         {
-            template<typename ItRef>
-            struct apply
+            typedef typename
+                detail::remove_reference<ItRef>::type
+            it;
+
+            typedef
+                transform_view_iterator2<
+                    typename result_of::prior<
+                        typename it::first1_type
+                    >::type
+                  , typename result_of::prior<
+                        typename it::first2_type
+                    >::type
+                  , typename it::transform_type
+                >
+            type;
+
+            static type
+            call(ItRef it)
             {
-                typedef typename
-                    detail::remove_reference<ItRef>::type
-                it;
-
-                typedef
-                    transform_view_iterator2<
-                        typename result_of::prior<
-                            typename it::first1_type
-                        >::type
-                      , typename result_of::prior<
-                            typename it::first2_type
-                        >::type
-                      , typename it::transform_type
-                    >
-                type;
-
-                static type
-                call(ItRef it)
-                {
-                    return type(fusion::prior(it.first1),
-                            fusion::prior(it.first2),
-                            it.f);
-                }
-            };
+                return type(fusion::prior(it.first1),
+                        fusion::prior(it.first2),
+                        it.f);
+            }
         };
-    }
-}}
+    };
+}}}
 
 #endif
Added: sandbox/SOC/2009/fusion/boost/fusion/view/transform_view/detail/transform_view_iterator.hpp
==============================================================================
--- (empty file)
+++ sandbox/SOC/2009/fusion/boost/fusion/view/transform_view/detail/transform_view_iterator.hpp	2009-07-10 18:07:00 EDT (Fri, 10 Jul 2009)
@@ -0,0 +1,100 @@
+/*=============================================================================
+    Copyright (c) 2001-2006 Joel de Guzman
+
+    Distributed under 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_FUSION_VIEW_TRANSFORM_VIEW_DETAIL_TRANSFORM_VIEW_ITERATOR_HPP
+#define BOOST_FUSION_VIEW_TRANSFORM_VIEW_DETAIL_TRANSFORM_VIEW_ITERATOR_HPP
+
+#include <boost/fusion/support/iterator_base.hpp>
+#include <boost/fusion/support/category_of.hpp>
+
+namespace boost { namespace fusion
+{
+    // Unary Version
+    struct transform_view_iterator_tag;
+
+    template <typename First, typename FRef>
+    struct transform_view_iterator
+        : iterator_base<transform_view_iterator<First, FRef> >
+    {
+        //TODO !!!
+        typedef FRef transform_type;
+        typedef First first_type;
+
+        typedef transform_view_iterator_tag fusion_tag;
+        typedef typename traits::category_of<first_type>::type category;
+
+        template<typename OtherIt>
+        transform_view_iterator(BOOST_FUSION_R_ELSE_CLREF(OtherIt) it)
+          : first(BOOST_FUSION_FORWARD(OtherIt,it).first)
+          , f(BOOST_FUSION_FORWARD(OtherIt,it).f)
+        {}
+
+        transform_view_iterator(First const& first, transform_type f)
+          : first(first)
+          , f(&f)
+        {}
+
+        template<typename OtherIt>
+        transform_view_iterator&
+        operator=(BOOST_FUSION_R_ELSE_CLREF(OtherIt) it)
+        {
+            first=BOOST_FUSION_FORWARD(OtherIt,it).first;
+            f=BOOST_FUSION_FORWARD(OtherIt,it).f;
+            return *this;
+        }
+
+        first_type first;
+        typename detail::remove_reference<transform_type>::type* f;
+    };
+
+    // Binary Version
+    struct transform_view_iterator2_tag;
+
+    template <typename First1, typename First2, typename FRef>
+    struct transform_view_iterator2
+        : iterator_base<transform_view_iterator2<First1, First2, FRef> >
+    {
+        typedef First1 first1_type;
+        typedef First2 first2_type;
+        typedef FRef transform_type;
+
+        typedef transform_view_iterator2_tag fusion_tag;
+        typedef typename traits::category_of<first1_type>::type category;
+
+        template<typename OtherIt>
+        transform_view_iterator2(
+                BOOST_FUSION_R_ELSE_CLREF(OtherIt) it)
+          : first1(BOOST_FUSION_FORWARD(OtherIt,it).first1)
+          , first2(BOOST_FUSION_FORWARD(OtherIt,it).first2)
+          , f(BOOST_FUSION_FORWARD(OtherIt,it).f)
+        {}
+
+        transform_view_iterator2(First1 const& first1,
+                First2 const& first2,
+                FRef f)
+          : first1(first1)
+          , first2(first2)
+          , f(&f)
+        {}
+
+        template<typename OtherIt>
+        transform_view_iterator2&
+        operator=(BOOST_FUSION_R_ELSE_CLREF(OtherIt) it)
+        {
+            first1=BOOST_FUSION_FORWARD(OtherIt,it).first1;
+            first2=BOOST_FUSION_FORWARD(OtherIt,it).first2;
+            f=BOOST_FUSION_FORWARD(OtherIt,it).f;
+            return *this;
+        }
+
+        first1_type first1;
+        first2_type first2;
+        typename detail::remove_reference<transform_type>::type* f;
+    };
+}}
+
+#endif
Modified: sandbox/SOC/2009/fusion/boost/fusion/view/transform_view/detail/value_at_impl.hpp
==============================================================================
--- sandbox/SOC/2009/fusion/boost/fusion/view/transform_view/detail/value_at_impl.hpp	(original)
+++ sandbox/SOC/2009/fusion/boost/fusion/view/transform_view/detail/value_at_impl.hpp	2009-07-10 18:07:00 EDT (Fri, 10 Jul 2009)
@@ -14,62 +14,56 @@
 
 #include <boost/mpl/apply.hpp>
 
-namespace boost { namespace fusion
+namespace boost { namespace fusion { namespace extension
 {
-    struct transform_view_tag;
-    struct transform_view2_tag;
+    template<typename Tag>
+    struct value_at_impl;
 
-    namespace extension
+    template<>
+    struct value_at_impl<transform_view_tag>
     {
-        template<typename Tag>
-        struct value_at_impl;
-
-        template<>
-        struct value_at_impl<transform_view_tag>
+        template<typename SeqRef, typename N>
+        struct apply
         {
-            template<typename SeqRef, typename N>
-            struct apply
-            {
-                typedef typename detail::remove_reference<SeqRef>::type seq;
-
-                typedef typename
-                    mpl::apply<
-                        detail::apply_transform_result<
-                            typename seq::transform_type
-                        >
-                      , typename boost::fusion::result_of::value_at<
-                            typename seq::seq_type
-                          , N
-                        >::type
+            typedef typename detail::remove_reference<SeqRef>::type seq;
+
+            typedef typename
+                mpl::apply<
+                    detail::apply_transform_result<
+                        typename seq::transform_type
+                    >
+                  , typename boost::fusion::result_of::value_at<
+                        typename seq::seq_type
+                      , N
                     >::type
-                type;
-            };
+                >::type
+            type;
         };
+    };
 
-        template<>
-        struct value_at_impl<transform_view2_tag>
+    template<>
+    struct value_at_impl<transform_view2_tag>
+    {
+        template<typename SeqRef, typename N>
+        struct apply
         {
-            template<typename SeqRef, typename N>
-            struct apply
-            {
-                typedef typename detail::remove_reference<SeqRef>::type seq;
-
-                typedef typename
-                    mpl::apply<
-                        detail::apply_transform_result<
-                            typename seq::transform_type
-                        >
-                      , typename boost::fusion::result_of::value_at<
-                            typename seq::seq1_type, N
-                        >::type
-                      , typename boost::fusion::result_of::value_at<
-                            typename seq::seq2_type, N
-                        >::type
+            typedef typename detail::remove_reference<SeqRef>::type seq;
+
+            typedef typename
+                mpl::apply<
+                    detail::apply_transform_result<
+                        typename seq::transform_type
+                    >
+                  , typename boost::fusion::result_of::value_at<
+                        typename seq::seq1_type, N
+                    >::type
+                  , typename boost::fusion::result_of::value_at<
+                        typename seq::seq2_type, N
                     >::type
-                type;
-            };
+                >::type
+            type;
         };
-    }
-}}
+    };
+}}}
 
 #endif
Modified: sandbox/SOC/2009/fusion/boost/fusion/view/transform_view/detail/value_of_impl.hpp
==============================================================================
--- sandbox/SOC/2009/fusion/boost/fusion/view/transform_view/detail/value_of_impl.hpp	(original)
+++ sandbox/SOC/2009/fusion/boost/fusion/view/transform_view/detail/value_of_impl.hpp	2009-07-10 18:07:00 EDT (Fri, 10 Jul 2009)
@@ -12,63 +12,57 @@
 #include <boost/fusion/iterator/value_of.hpp>
 #include <boost/fusion/view/transform_view/detail/apply_transform_result.hpp>
 
-namespace boost { namespace fusion
+namespace boost { namespace fusion { namespace extension
 {
-    struct transform_view_iterator_tag;
-    struct transform_view_iterator2_tag;
+    template <typename Tag>
+    struct value_of_impl;
 
-    namespace extension
+    // Unary Version
+    template <>
+    struct value_of_impl<transform_view_iterator_tag>
     {
-        template <typename Tag>
-        struct value_of_impl;
-
-        // Unary Version
-        template <>
-        struct value_of_impl<transform_view_iterator_tag>
+        template <typename ItRef>
+        struct apply
         {
-            template <typename ItRef>
-            struct apply
-            {
-                typedef typename detail::remove_reference<ItRef>::type it;
-
-                typedef typename
-                    mpl::apply<
-                        detail::apply_transform_result<
-                            typename it::transform_type
-                        >
-                      , typename result_of::value_of<
-                            typename it::first_type
-                        >::type
+            typedef typename detail::remove_reference<ItRef>::type it;
+
+            typedef typename
+                mpl::apply<
+                    detail::apply_transform_result<
+                        typename it::transform_type
+                    >
+                  , typename result_of::value_of<
+                        typename it::first_type
                     >::type
-                type;
-            };
+                >::type
+            type;
         };
+    };
 
-        // Binary Version
-        template <>
-        struct value_of_impl<transform_view_iterator2_tag>
+    // Binary Version
+    template <>
+    struct value_of_impl<transform_view_iterator2_tag>
+    {
+        template <typename ItRef>
+        struct apply
         {
-            template <typename ItRef>
-            struct apply
-            {
-                typedef typename detail::remove_reference<ItRef>::type it;
-
-                typedef typename
-                    mpl::apply<
-                        detail::apply_transform_result<
-                            typename it::transform_type
-                        >
-                      , typename result_of::value_of<
-                            typename it::first1_type
-                        >::type
-                      , typename result_of::value_of<
-                            typename it::first2_type
-                        >::type
+            typedef typename detail::remove_reference<ItRef>::type it;
+
+            typedef typename
+                mpl::apply<
+                    detail::apply_transform_result<
+                        typename it::transform_type
+                    >
+                  , typename result_of::value_of<
+                        typename it::first1_type
+                    >::type
+                  , typename result_of::value_of<
+                        typename it::first2_type
                     >::type
-                type;
-            };
+                >::type
+            type;
         };
-    }
-}}
+    };
+}}}
 
 #endif
Modified: sandbox/SOC/2009/fusion/boost/fusion/view/transform_view/transform_view.hpp
==============================================================================
--- sandbox/SOC/2009/fusion/boost/fusion/view/transform_view/transform_view.hpp	(original)
+++ sandbox/SOC/2009/fusion/boost/fusion/view/transform_view/transform_view.hpp	2009-07-10 18:07:00 EDT (Fri, 10 Jul 2009)
@@ -28,12 +28,20 @@
 #include <boost/mpl/bool.hpp>
 
 #include <boost/fusion/view/transform_view/transform_view_fwd.hpp>
-#include <boost/fusion/view/transform_view/transform_view_iterator.hpp>
-#include <boost/fusion/view/transform_view/detail/begin_impl.hpp>
-#include <boost/fusion/view/transform_view/detail/end_impl.hpp>
 #include <boost/fusion/view/transform_view/detail/at_impl.hpp>
 #include <boost/fusion/view/transform_view/detail/value_at_impl.hpp>
 
+#include <boost/fusion/view/transform_view/detail/transform_view_iterator.hpp>
+#include <boost/fusion/view/transform_view/detail/begin_impl.hpp>
+#include <boost/fusion/view/transform_view/detail/end_impl.hpp>
+#include <boost/fusion/view/transform_view/detail/deref_impl.hpp>
+#include <boost/fusion/view/transform_view/detail/next_impl.hpp>
+#include <boost/fusion/view/transform_view/detail/prior_impl.hpp>
+#include <boost/fusion/view/transform_view/detail/value_of_impl.hpp>
+#include <boost/fusion/view/transform_view/detail/advance_impl.hpp>
+#include <boost/fusion/view/transform_view/detail/distance_impl.hpp>
+#include <boost/fusion/view/transform_view/detail/equal_to_impl.hpp>
+
 namespace boost { namespace fusion
 {
     struct void_;
Deleted: sandbox/SOC/2009/fusion/boost/fusion/view/transform_view/transform_view_iterator.hpp
==============================================================================
--- sandbox/SOC/2009/fusion/boost/fusion/view/transform_view/transform_view_iterator.hpp	2009-07-10 18:07:00 EDT (Fri, 10 Jul 2009)
+++ (empty file)
@@ -1,108 +0,0 @@
-/*=============================================================================
-    Copyright (c) 2001-2006 Joel de Guzman
-
-    Distributed under 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_FUSION_VIEW_TRANSFORM_VIEW_TRANSFORM_VIEW_ITERATOR_HPP
-#define BOOST_FUSION_VIEW_TRANSFORM_VIEW_TRANSFORM_VIEW_ITERATOR_HPP
-
-#include <boost/fusion/support/iterator_base.hpp>
-#include <boost/fusion/support/category_of.hpp>
-
-#include <boost/fusion/view/transform_view/detail/deref_impl.hpp>
-#include <boost/fusion/view/transform_view/detail/next_impl.hpp>
-#include <boost/fusion/view/transform_view/detail/prior_impl.hpp>
-#include <boost/fusion/view/transform_view/detail/value_of_impl.hpp>
-#include <boost/fusion/view/transform_view/detail/advance_impl.hpp>
-#include <boost/fusion/view/transform_view/detail/distance_impl.hpp>
-#include <boost/fusion/view/transform_view/detail/equal_to_impl.hpp>
-
-namespace boost { namespace fusion
-{
-    // Unary Version
-    struct transform_view_iterator_tag;
-
-    template <typename First, typename FRef>
-    struct transform_view_iterator
-        : iterator_base<transform_view_iterator<First, FRef> >
-    {
-        //TODO !!!
-        typedef FRef transform_type;
-        typedef First first_type;
-
-        typedef transform_view_iterator_tag fusion_tag;
-        typedef typename traits::category_of<first_type>::type category;
-
-        template<typename OtherIt>
-        transform_view_iterator(BOOST_FUSION_R_ELSE_CLREF(OtherIt) it)
-          : first(BOOST_FUSION_FORWARD(OtherIt,it).first)
-          , f(BOOST_FUSION_FORWARD(OtherIt,it).f)
-        {}
-
-        transform_view_iterator(First const& first, transform_type f)
-          : first(first)
-          , f(&f)
-        {}
-
-        template<typename OtherIt>
-        transform_view_iterator&
-        operator=(BOOST_FUSION_R_ELSE_CLREF(OtherIt) it)
-        {
-            first=BOOST_FUSION_FORWARD(OtherIt,it).first;
-            f=BOOST_FUSION_FORWARD(OtherIt,it).f;
-            return *this;
-        }
-
-        first_type first;
-        typename detail::remove_reference<transform_type>::type* f;
-    };
-
-    // Binary Version
-    struct transform_view_iterator2_tag;
-
-    template <typename First1, typename First2, typename FRef>
-    struct transform_view_iterator2
-        : iterator_base<transform_view_iterator2<First1, First2, FRef> >
-    {
-        typedef First1 first1_type;
-        typedef First2 first2_type;
-        typedef FRef transform_type;
-
-        typedef transform_view_iterator2_tag fusion_tag;
-        typedef typename traits::category_of<first1_type>::type category;
-
-        template<typename OtherIt>
-        transform_view_iterator2(
-                BOOST_FUSION_R_ELSE_CLREF(OtherIt) it)
-          : first1(BOOST_FUSION_FORWARD(OtherIt,it).first1)
-          , first2(BOOST_FUSION_FORWARD(OtherIt,it).first2)
-          , f(BOOST_FUSION_FORWARD(OtherIt,it).f)
-        {}
-
-        transform_view_iterator2(First1 const& first1,
-                First2 const& first2,
-                FRef f)
-          : first1(first1)
-          , first2(first2)
-          , f(&f)
-        {}
-
-        template<typename OtherIt>
-        transform_view_iterator2&
-        operator=(BOOST_FUSION_R_ELSE_CLREF(OtherIt) it)
-        {
-            first1=BOOST_FUSION_FORWARD(OtherIt,it).first1;
-            first2=BOOST_FUSION_FORWARD(OtherIt,it).first2;
-            f=BOOST_FUSION_FORWARD(OtherIt,it).f;
-            return *this;
-        }
-
-        first1_type first1;
-        first2_type first2;
-        typename detail::remove_reference<transform_type>::type* f;
-    };
-}}
-
-#endif
Modified: sandbox/SOC/2009/fusion/boost/fusion/view/zip_view.hpp
==============================================================================
--- sandbox/SOC/2009/fusion/boost/fusion/view/zip_view.hpp	(original)
+++ sandbox/SOC/2009/fusion/boost/fusion/view/zip_view.hpp	2009-07-10 18:07:00 EDT (Fri, 10 Jul 2009)
@@ -10,6 +10,5 @@
 #define BOOST_FUSION_VIEW_ZIP_VIEW_HPP
 
 #include <boost/fusion/view/zip_view/zip_view.hpp>
-#include <boost/fusion/view/zip_view/zip_view_iterator.hpp>
 
 #endif
Modified: sandbox/SOC/2009/fusion/boost/fusion/view/zip_view/detail/advance_impl.hpp
==============================================================================
--- sandbox/SOC/2009/fusion/boost/fusion/view/zip_view/detail/advance_impl.hpp	(original)
+++ sandbox/SOC/2009/fusion/boost/fusion/view/zip_view/detail/advance_impl.hpp	2009-07-10 18:07:00 EDT (Fri, 10 Jul 2009)
@@ -9,14 +9,11 @@
 #ifndef BOOST_FUSION_VIEW_ZIP_VIEW_DETAIL_ADVANCE_IMPL_HPP
 #define BOOST_FUSION_VIEW_ZIP_VIEW_DETAIL_ADVANCE_IMPL_HPP
 
-#include <boost/fusion/view/zip_view/zip_view_iterator_fwd.hpp>
 #include <boost/fusion/iterator/advance.hpp>
 #include <boost/fusion/algorithm/transformation/transform.hpp>
 
-namespace boost { namespace fusion {
-
-    struct zip_view_iterator_tag;
-
+namespace boost { namespace fusion
+{
     namespace detail
     {
         template<typename N>
Modified: sandbox/SOC/2009/fusion/boost/fusion/view/zip_view/detail/at_impl.hpp
==============================================================================
--- sandbox/SOC/2009/fusion/boost/fusion/view/zip_view/detail/at_impl.hpp	(original)
+++ sandbox/SOC/2009/fusion/boost/fusion/view/zip_view/detail/at_impl.hpp	2009-07-10 18:07:00 EDT (Fri, 10 Jul 2009)
@@ -10,21 +10,19 @@
 #define BOOST_FUSION_VIEW_ZIP_VIEW_DETAIL_AT_IMPL_HPP
 
 #include <boost/fusion/container/vector.hpp>
-#include <boost/fusion/sequence/intrinsic/at.hpp>
 #include <boost/fusion/container/vector/convert.hpp>
+#include <boost/fusion/sequence/intrinsic/at.hpp>
 #include <boost/fusion/algorithm/transformation/transform.hpp>
 #include <boost/fusion/support/assert.hpp>
-
-#include <boost/type_traits/is_reference.hpp>
 #include <boost/fusion/support/unused.hpp>
+
 #include <boost/mpl/eval_if.hpp>
 #include <boost/mpl/identity.hpp>
+
 #include <boost/type_traits/is_same.hpp>
 
 namespace boost { namespace fusion
 {
-    struct zip_view_tag;
-
     namespace detail
     {
         template<typename N>
Modified: sandbox/SOC/2009/fusion/boost/fusion/view/zip_view/detail/begin_impl.hpp
==============================================================================
--- sandbox/SOC/2009/fusion/boost/fusion/view/zip_view/detail/begin_impl.hpp	(original)
+++ sandbox/SOC/2009/fusion/boost/fusion/view/zip_view/detail/begin_impl.hpp	2009-07-10 18:07:00 EDT (Fri, 10 Jul 2009)
@@ -10,20 +10,17 @@
 #define BOOST_FUSION_VIEW_ZIP_VIEW_DETAIL_BEGIN_IMPL_HPP
 
 #include <boost/fusion/sequence/intrinsic/begin.hpp>
-#include <boost/fusion/view/zip_view/zip_view_iterator_fwd.hpp>
 #include <boost/fusion/algorithm/transformation/transform.hpp>
 #include <boost/fusion/support/unused.hpp>
 #include <boost/fusion/support/assert.hpp>
 
-#include <boost/type_traits/is_reference.hpp>
-#include <boost/type_traits/is_same.hpp>
 #include <boost/mpl/eval_if.hpp>
 #include <boost/mpl/identity.hpp>
+#include <boost/type_traits/is_reference.hpp>
+#include <boost/type_traits/is_same.hpp>
 
-namespace boost { namespace fusion {
-
-    struct zip_view_tag;
-
+namespace boost { namespace fusion
+{
     namespace detail
     {
         struct poly_begin
Modified: sandbox/SOC/2009/fusion/boost/fusion/view/zip_view/detail/deref_impl.hpp
==============================================================================
--- sandbox/SOC/2009/fusion/boost/fusion/view/zip_view/detail/deref_impl.hpp	(original)
+++ sandbox/SOC/2009/fusion/boost/fusion/view/zip_view/detail/deref_impl.hpp	2009-07-10 18:07:00 EDT (Fri, 10 Jul 2009)
@@ -19,10 +19,8 @@
 #include <boost/mpl/identity.hpp>
 #include <boost/type_traits/is_same.hpp>
 
-namespace boost { namespace fusion {
-
-    struct zip_view_iterator_tag;
-
+namespace boost { namespace fusion
+{
     namespace detail
     {
         struct poly_deref
Modified: sandbox/SOC/2009/fusion/boost/fusion/view/zip_view/detail/distance_impl.hpp
==============================================================================
--- sandbox/SOC/2009/fusion/boost/fusion/view/zip_view/detail/distance_impl.hpp	(original)
+++ sandbox/SOC/2009/fusion/boost/fusion/view/zip_view/detail/distance_impl.hpp	2009-07-10 18:07:00 EDT (Fri, 10 Jul 2009)
@@ -20,10 +20,8 @@
 #include <boost/mpl/placeholders.hpp>
 #include <boost/type_traits/is_same.hpp>
 
-namespace boost { namespace fusion {
-
-    struct zip_view_iterator_tag;
-
+namespace boost { namespace fusion
+{
     struct random_access_iterator_tag;
 
     namespace detail
Modified: sandbox/SOC/2009/fusion/boost/fusion/view/zip_view/detail/end_impl.hpp
==============================================================================
--- sandbox/SOC/2009/fusion/boost/fusion/view/zip_view/detail/end_impl.hpp	(original)
+++ sandbox/SOC/2009/fusion/boost/fusion/view/zip_view/detail/end_impl.hpp	2009-07-10 18:07:00 EDT (Fri, 10 Jul 2009)
@@ -23,10 +23,8 @@
 #include <boost/type_traits/is_reference.hpp>
 #include <boost/type_traits/is_same.hpp>
 
-namespace boost { namespace fusion {
-
-    struct zip_view_tag;
-
+namespace boost { namespace fusion
+{
     namespace detail
     {
         template<typename Seq, typename M>
Modified: sandbox/SOC/2009/fusion/boost/fusion/view/zip_view/detail/equal_to_impl.hpp
==============================================================================
--- sandbox/SOC/2009/fusion/boost/fusion/view/zip_view/detail/equal_to_impl.hpp	(original)
+++ sandbox/SOC/2009/fusion/boost/fusion/view/zip_view/detail/equal_to_impl.hpp	2009-07-10 18:07:00 EDT (Fri, 10 Jul 2009)
@@ -24,10 +24,8 @@
 #include <boost/mpl/equal_to.hpp>
 #include <boost/type_traits/is_same.hpp>
 
-namespace boost { namespace fusion {
-
-    struct zip_view_iterator_tag;
-
+namespace boost { namespace fusion
+{
     namespace detail
     {
         template<typename It1, typename It2>
Modified: sandbox/SOC/2009/fusion/boost/fusion/view/zip_view/detail/next_impl.hpp
==============================================================================
--- sandbox/SOC/2009/fusion/boost/fusion/view/zip_view/detail/next_impl.hpp	(original)
+++ sandbox/SOC/2009/fusion/boost/fusion/view/zip_view/detail/next_impl.hpp	2009-07-10 18:07:00 EDT (Fri, 10 Jul 2009)
@@ -9,19 +9,17 @@
 #ifndef BOOST_FUSION_VIEW_ZIP_VIEW_DETAIL_NEXT_IMPL_HPP
 #define BOOST_FUSION_VIEW_ZIP_VIEW_DETAIL_NEXT_IMPL_HPP
 
-#include <boost/fusion/view/zip_view/zip_view_iterator_fwd.hpp>
 #include <boost/fusion/iterator/next.hpp>
 #include <boost/fusion/algorithm/transformation/transform.hpp>
 #include <boost/fusion/support/unused.hpp>
+
 #include <boost/mpl/eval_if.hpp>
 #include <boost/mpl/identity.hpp>
 #include <boost/type_traits/is_same.hpp>
 #include <boost/type_traits/remove_const.hpp>
 
-namespace boost { namespace fusion {
-
-    struct zip_view_iterator_tag;
-
+namespace boost { namespace fusion
+{
     namespace detail
     {
         struct poly_next
Modified: sandbox/SOC/2009/fusion/boost/fusion/view/zip_view/detail/prior_impl.hpp
==============================================================================
--- sandbox/SOC/2009/fusion/boost/fusion/view/zip_view/detail/prior_impl.hpp	(original)
+++ sandbox/SOC/2009/fusion/boost/fusion/view/zip_view/detail/prior_impl.hpp	2009-07-10 18:07:00 EDT (Fri, 10 Jul 2009)
@@ -18,10 +18,8 @@
 #include <boost/type_traits/is_same.hpp>
 #include <boost/type_traits/remove_const.hpp>
 
-namespace boost { namespace fusion {
-
-    struct zip_view_iterator_tag;
-
+namespace boost { namespace fusion
+{
     namespace detail
     {
         struct poly_prior
Modified: sandbox/SOC/2009/fusion/boost/fusion/view/zip_view/detail/size_impl.hpp
==============================================================================
--- sandbox/SOC/2009/fusion/boost/fusion/view/zip_view/detail/size_impl.hpp	(original)
+++ sandbox/SOC/2009/fusion/boost/fusion/view/zip_view/detail/size_impl.hpp	2009-07-10 18:07:00 EDT (Fri, 10 Jul 2009)
@@ -9,24 +9,19 @@
 #ifndef BOOST_FUSION_VIEW_ZIP_VIEW_DETAIL_SIZE_IMPL_HPP
 #define BOOST_FUSION_VIEW_ZIP_VIEW_DETAIL_SIZE_IMPL_HPP
 
-namespace boost { namespace fusion {
+namespace boost { namespace fusion { namespace extension
+{
+    template<typename Tag>
+    struct size_impl;
 
-    struct zip_view_tag;
-
-    namespace extension
+    template<>
+    struct size_impl<zip_view_tag>
     {
-        template<typename Tag>
-        struct size_impl;
-
-        template<>
-        struct size_impl<zip_view_tag>
-        {
-            template<typename SeqRef>
-            struct apply
-              : detail::remove_reference<SeqRef>::type::size
-            {};
-        };
-    }
-}}
+        template<typename SeqRef>
+        struct apply
+          : detail::remove_reference<SeqRef>::type::size
+        {};
+    };
+}}}
 
 #endif
Modified: sandbox/SOC/2009/fusion/boost/fusion/view/zip_view/detail/value_at_impl.hpp
==============================================================================
--- sandbox/SOC/2009/fusion/boost/fusion/view/zip_view/detail/value_at_impl.hpp	(original)
+++ sandbox/SOC/2009/fusion/boost/fusion/view/zip_view/detail/value_at_impl.hpp	2009-07-10 18:07:00 EDT (Fri, 10 Jul 2009)
@@ -13,14 +13,13 @@
 #include <boost/fusion/algorithm/transformation/transform.hpp>
 #include <boost/fusion/sequence/intrinsic/value_at.hpp>
 #include <boost/fusion/support/unused.hpp>
+
 #include <boost/mpl/eval_if.hpp>
 #include <boost/mpl/identity.hpp>
 #include <boost/type_traits/is_same.hpp>
 
-namespace boost { namespace fusion {
-
-    struct zip_view_tag;
-
+namespace boost { namespace fusion
+{
     namespace detail
     {
         template<typename N>
Modified: sandbox/SOC/2009/fusion/boost/fusion/view/zip_view/detail/value_of_impl.hpp
==============================================================================
--- sandbox/SOC/2009/fusion/boost/fusion/view/zip_view/detail/value_of_impl.hpp	(original)
+++ sandbox/SOC/2009/fusion/boost/fusion/view/zip_view/detail/value_of_impl.hpp	2009-07-10 18:07:00 EDT (Fri, 10 Jul 2009)
@@ -20,8 +20,6 @@
 
 namespace boost { namespace fusion
 {
-    struct zip_view_iterator_tag;
-
     namespace detail
     {
         struct poly_value_of
Added: sandbox/SOC/2009/fusion/boost/fusion/view/zip_view/detail/zip_view_fwd.hpp
==============================================================================
--- (empty file)
+++ sandbox/SOC/2009/fusion/boost/fusion/view/zip_view/detail/zip_view_fwd.hpp	2009-07-10 18:07:00 EDT (Fri, 10 Jul 2009)
@@ -0,0 +1,14 @@
+// Copyright Christopher Schmidt 2009.
+// Distributed under 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_FUSION_VIEW_ZIP_VIEW_DETAIL_ZIP_VIEW_FWD_HPP
+#define BOOST_FUSION_VIEW_ZIP_VIEW_DETAIL_ZIP_VIEW_FWD_HPP
+
+namespace boost { namespace fusion
+{
+    struct zip_view_tag;
+}}
+
+#endif
Added: sandbox/SOC/2009/fusion/boost/fusion/view/zip_view/detail/zip_view_iterator.hpp
==============================================================================
--- (empty file)
+++ sandbox/SOC/2009/fusion/boost/fusion/view/zip_view/detail/zip_view_iterator.hpp	2009-07-10 18:07:00 EDT (Fri, 10 Jul 2009)
@@ -0,0 +1,54 @@
+/*=============================================================================
+    Copyright (c) 2001-2006 Joel de Guzman
+    Copyright (c) 2006 Dan Marsden
+
+    Distributed under 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_FUSION_VIEW_ZIP_VIEW_DETAIL_ZIP_VIEW_ITERATOR_HPP
+#define BOOST_FUSION_VIEW_ZIP_VIEW_DETAIL_ZIP_VIEW_ITERATOR_HPP
+
+#include <boost/fusion/container/vector/convert.hpp>
+#include <boost/fusion/support/iterator_base.hpp>
+#include <boost/fusion/support/ref.hpp>
+
+namespace boost { namespace fusion {
+
+    struct zip_view_iterator_tag;
+
+    template<
+        typename ItSeq
+      , typename Traversal=typename detail::strictest_traversal<ItSeq>::type
+    >
+    struct zip_view_iterator
+      : iterator_base<zip_view_iterator<ItSeq, Traversal> >
+    {
+        typedef zip_view_iterator_tag fusion_tag;
+        typedef Traversal category;
+
+        template<typename OtherIt>
+        zip_view_iterator(BOOST_FUSION_R_ELSE_CLREF(OtherIt) it)
+          : iterators_(sequence_assign(it.iterators_))
+        {}
+
+        template<typename Seq>
+        zip_view_iterator(BOOST_FUSION_R_ELSE_CLREF(Seq) seq,int)
+          : iterators_(
+                sequence_assign(BOOST_FUSION_FORWARD(Seq,seq)))
+        {}
+
+        template<typename OtherIt>
+        zip_view_iterator&
+        operator=(BOOST_FUSION_R_ELSE_CLREF(OtherIt) it)
+        {
+            iterators_=it.iterators_;
+            return *this;
+        }
+
+        typedef typename result_of::as_vector<ItSeq>::type iterators;
+        iterators iterators_;
+    };
+}}
+
+#endif
Modified: sandbox/SOC/2009/fusion/boost/fusion/view/zip_view/zip_view.hpp
==============================================================================
--- sandbox/SOC/2009/fusion/boost/fusion/view/zip_view/zip_view.hpp	(original)
+++ sandbox/SOC/2009/fusion/boost/fusion/view/zip_view/zip_view.hpp	2009-07-10 18:07:00 EDT (Fri, 10 Jul 2009)
@@ -32,11 +32,21 @@
 #include <boost/type_traits/is_reference.hpp>
 
 #include <boost/fusion/view/detail/strictest_traversal.hpp>
-#include <boost/fusion/view/zip_view/detail/begin_impl.hpp>
-#include <boost/fusion/view/zip_view/detail/end_impl.hpp>
+#include <boost/fusion/view/zip_view/detail/zip_view_fwd.hpp>
 #include <boost/fusion/view/zip_view/detail/size_impl.hpp>
 #include <boost/fusion/view/zip_view/detail/at_impl.hpp>
 #include <boost/fusion/view/zip_view/detail/value_at_impl.hpp>
+#include <boost/fusion/view/zip_view/detail/zip_view_iterator.hpp>
+
+#include <boost/fusion/view/zip_view/detail/begin_impl.hpp>
+#include <boost/fusion/view/zip_view/detail/end_impl.hpp>
+#include <boost/fusion/view/zip_view/detail/deref_impl.hpp>
+#include <boost/fusion/view/zip_view/detail/next_impl.hpp>
+#include <boost/fusion/view/zip_view/detail/prior_impl.hpp>
+#include <boost/fusion/view/zip_view/detail/advance_impl.hpp>
+#include <boost/fusion/view/zip_view/detail/distance_impl.hpp>
+#include <boost/fusion/view/zip_view/detail/value_of_impl.hpp>
+#include <boost/fusion/view/zip_view/detail/equal_to_impl.hpp>
 
 namespace boost { namespace fusion {
 
Deleted: sandbox/SOC/2009/fusion/boost/fusion/view/zip_view/zip_view_iterator.hpp
==============================================================================
--- sandbox/SOC/2009/fusion/boost/fusion/view/zip_view/zip_view_iterator.hpp	2009-07-10 18:07:00 EDT (Fri, 10 Jul 2009)
+++ (empty file)
@@ -1,60 +0,0 @@
-/*=============================================================================
-    Copyright (c) 2001-2006 Joel de Guzman
-    Copyright (c) 2006 Dan Marsden
-
-    Distributed under 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_FUSION_VIEW_ZIP_VIEW_ZIP_VIEW_ITERATOR_HPP
-#define BOOST_FUSION_VIEW_ZIP_VIEW_ZIP_VIEW_ITERATOR_HPP
-
-#include <boost/fusion/container/vector/convert.hpp>
-#include <boost/fusion/support/iterator_base.hpp>
-#include <boost/fusion/support/ref.hpp>
-
-#include <boost/fusion/view/zip_view/zip_view_iterator_fwd.hpp>
-#include <boost/fusion/view/zip_view/detail/deref_impl.hpp>
-#include <boost/fusion/view/zip_view/detail/next_impl.hpp>
-#include <boost/fusion/view/zip_view/detail/prior_impl.hpp>
-#include <boost/fusion/view/zip_view/detail/advance_impl.hpp>
-#include <boost/fusion/view/zip_view/detail/distance_impl.hpp>
-#include <boost/fusion/view/zip_view/detail/value_of_impl.hpp>
-#include <boost/fusion/view/zip_view/detail/equal_to_impl.hpp>
-
-namespace boost { namespace fusion {
-
-    struct zip_view_iterator_tag;
-
-    template<typename ItSeq, typename Traversal>
-    struct zip_view_iterator
-      : iterator_base<zip_view_iterator<ItSeq, Traversal> >
-    {
-        typedef zip_view_iterator_tag fusion_tag;
-        typedef Traversal category;
-
-        template<typename OtherIt>
-        zip_view_iterator(BOOST_FUSION_R_ELSE_CLREF(OtherIt) it)
-          : iterators_(sequence_assign(it.iterators_))
-        {}
-
-        template<typename Seq>
-        zip_view_iterator(BOOST_FUSION_R_ELSE_CLREF(Seq) seq,int)
-          : iterators_(
-                sequence_assign(BOOST_FUSION_FORWARD(Seq,seq)))
-        {}
-
-        template<typename OtherIt>
-        zip_view_iterator&
-        operator=(BOOST_FUSION_R_ELSE_CLREF(OtherIt) it)
-        {
-            iterators_=it.iterators_;
-            return *this;
-        }
-
-        typedef typename result_of::as_vector<ItSeq>::type iterators;
-        iterators iterators_;
-    };
-}}
-
-#endif
Deleted: sandbox/SOC/2009/fusion/boost/fusion/view/zip_view/zip_view_iterator_fwd.hpp
==============================================================================
--- sandbox/SOC/2009/fusion/boost/fusion/view/zip_view/zip_view_iterator_fwd.hpp	2009-07-10 18:07:00 EDT (Fri, 10 Jul 2009)
+++ (empty file)
@@ -1,23 +0,0 @@
-/*=============================================================================
-    Copyright (c) 2001-2006 Joel de Guzman
-    Copyright (c) 2006 Dan Marsden
-
-    Distributed under 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_FUSION_VIEW_ZIP_VIEW_ZIP_VIEW_ITERATOR_FWD_HPP
-#define BOOST_FUSION_VIEW_ZIP_VIEW_ZIP_VIEW_ITERATOR_FWD_HPP
-
-#include <boost/fusion/view/detail/strictest_traversal.hpp>
-
-namespace boost { namespace fusion {
-
-    template<
-        typename ItSeq
-      , typename Traversal=typename detail::strictest_traversal<ItSeq>::type
-    >
-    struct zip_view_iterator;
-}}
-
-#endif
Modified: sandbox/SOC/2009/fusion/libs/fusion/doc/functional.qbk
==============================================================================
--- sandbox/SOC/2009/fusion/libs/fusion/doc/functional.qbk	(original)
+++ sandbox/SOC/2009/fusion/libs/fusion/doc/functional.qbk	2009-07-10 18:07:00 EDT (Fri, 10 Jul 2009)
@@ -277,7 +277,7 @@
         class Sequence
         >
     typename __result_of_invoke__<Function, Sequence const>::type
-    invoke(Function f, Sequence const & s);
+    invoke(Function f, Sequence const& s);
 
 [heading Parameters]
 [table
@@ -345,7 +345,7 @@
         class Sequence
         >
     typename __result_of_invoke_procedure__<Function, Sequence const>::type
-    invoke_procedure(Function f, Sequence const & s);
+    invoke_procedure(Function f, Sequence const& s);
 
 [heading Parameters]
 [table
@@ -405,7 +405,7 @@
         class Sequence
         >
     typename __result_of_invoke_function_object__<Function, Sequence const>::type
-    invoke_function_object(Function f, Sequence const & s);
+    invoke_function_object(Function f, Sequence const& s);
 
 [heading Parameters]
 [table
@@ -703,10 +703,10 @@
 
 [heading Example]
     template<class SequenceOfSequences, class Func>
-    void n_ary_for_each(SequenceOfSequences const & s, Func const & f)
+    void n_ary_for_each(SequenceOfSequences const& s, Func const& f)
     {
         __for_each__(__zip_view__<SequenceOfSequences>(s),
-            fused_procedure<Func const &>(f));
+            fused_procedure<Func const&>(f));
     }
 
     void try_it()
@@ -780,11 +780,11 @@
 [heading Example]
     template<class SeqOfSeqs, class Func>
     typename __result_of_transform__< zip_view<SeqOfSeqs> const,
-        fused_function_object<Func const &> >::type
-    n_ary_transform(SeqOfSeqs const & s, Func const & f)
+        fused_function_object<Func const&> >::type
+    n_ary_transform(SeqOfSeqs const& s, Func const& f)
     {
         return __transform__(zip_view<SeqOfSeqs>(s),
-            fused_function_object<Func const &>(f));
+            fused_function_object<Func const&>(f));
     }
 
     struct sub
@@ -894,7 +894,7 @@
         };
 
         template <class Seq>
-        void operator()(Seq const & s) const
+        void operator()(Seq const& s) const
         {
             __for_each__(s,++boost::lambda::_1);
         }
@@ -986,7 +986,7 @@
         typedef void result_type; // for simplicity
 
         template <typename T>
-        void operator()(T & lhs, T const & rhs) const
+        void operator()(T & lhs, T const& rhs) const
         {
             lhs += rhs;
         }
@@ -997,14 +997,14 @@
     {
         Tie tie_dest;
     public:
-        explicit fused_parallel_adder(Tie const & dest)
+        explicit fused_parallel_adder(Tie const& dest)
             : tie_dest(dest)
         { }
 
         typedef void result_type;
 
         template <class Seq>
-        void operator()(Seq const & s) const
+        void operator()(Seq const& s) const
         {
             for_each( zip(tie_dest,s), fused<add_assign>() );
         }
@@ -1026,7 +1026,7 @@
         };
 
         template <class Seq>
-        typename result< void(Seq) >::type operator()(Seq const & tie)
+        typename result< void(Seq) >::type operator()(Seq const& tie)
         {
             return typename result< void(Seq) >::type(
                 fused_parallel_adder<Seq>(tie) );
@@ -1086,7 +1086,7 @@
 [heading Synopsis]
     template <typename F>
     inline typename __result_of_make_fused__<F>::type
-    make_fused(F const & f);
+    make_fused(F const& f);
 
 [heading Parameters]
 [table
@@ -1135,7 +1135,7 @@
 [heading Synopsis]
     template <typename F>
     inline typename __result_of_make_fused_procedure__<F>::type
-    make_fused_procedure(F const & f);
+    make_fused_procedure(F const& f);
 
 [heading Parameters]
 [table
@@ -1178,7 +1178,7 @@
 [heading Synopsis]
     template <typename F>
     inline typename __result_of_make_fused_function_object__<F>::type
-    make_fused_function_object(F const & f);
+    make_fused_function_object(F const& f);
 
 [heading Parameters]
 [table
@@ -1240,7 +1240,7 @@
 [heading Synopsis]
     template <typename F>
     inline typename __result_of_make_unfused__<F>::type
-    make_unfused(F const & f);
+    make_unfused(F const& f);
 
 [heading Parameters]
 [table
@@ -1271,7 +1271,7 @@
         };
 
         template <class Seq>
-        void operator()(Seq const & s) const
+        void operator()(Seq const& s) const
         {
             __for_each__(s,++boost::lambda::_1);
         }
Modified: sandbox/SOC/2009/fusion/libs/fusion/doc/support.qbk
==============================================================================
--- sandbox/SOC/2009/fusion/libs/fusion/doc/support.qbk	(original)
+++ sandbox/SOC/2009/fusion/libs/fusion/doc/support.qbk	2009-07-10 18:07:00 EDT (Fri, 10 Jul 2009)
@@ -293,15 +293,15 @@
     template <typename T>
     struct holder
     {
-        typename traits::deduce<T const &>::type element;
+        typename traits::deduce<T const&>::type element;
 
-        holder(T const & a)
+        holder(T const& a)
           : element(a)
         { }
     };
 
     template <typename T>
-    holder<T> make_holder(T const & a)
+    holder<T> make_holder(T const& a)
     {
         return holder<T>(a);
     }
@@ -339,16 +339,16 @@
     {
         typename traits::deduce_sequence<Seq>::type element;
 
-        holder(Seq const & a)
+        holder(Seq const& a)
           : element(a)
         { }
     };
 
     template <typename T0, typename T1>
-    holder< __vector__<T0 const &, T1 const &> >
-    make_holder(T0 const & a0, T1 const & a1)
+    holder< __vector__<T0 const&, T1 const&> >
+    make_holder(T0 const& a0, T1 const& a1)
     {
-        typedef __vector__<T0 const &, T1 const &> arg_vec_t;
+        typedef __vector__<T0 const&, T1 const&> arg_vec_t;
         return holder<arg_vec_t>( arg_vec_t(a0,a1) );
     }
 
@@ -384,7 +384,7 @@
 
     template <typename First, typename Second>
     typename result_of::make_pair<First,Second>::type
-    make_pair(Second const &);
+    make_pair(Second const&);
 
 [heading Template parameters]
 
Modified: sandbox/SOC/2009/fusion/libs/fusion/example/cookbook/do_the_bind.cpp
==============================================================================
--- sandbox/SOC/2009/fusion/libs/fusion/example/cookbook/do_the_bind.cpp	(original)
+++ sandbox/SOC/2009/fusion/libs/fusion/example/cookbook/do_the_bind.cpp	2009-07-10 18:07:00 EDT (Fri, 10 Jul 2009)
@@ -65,9 +65,9 @@
     // A traits class to find out whether T is a placeholeder
     template <typename T> struct is_placeholder              : mpl::false_  { };
     template <int I> struct is_placeholder< placeholder<I> > : mpl::true_   { };
-    template <int I> struct is_placeholder< placeholder<I> & > : mpl::true_   { };
+    template <int I> struct is_placeholder< placeholder<I>& > : mpl::true_   { };
     template <int I> struct is_placeholder< placeholder<I> const   > : mpl::true_   { };
-    template <int I> struct is_placeholder< placeholder<I> const & > : mpl::true_   { };
+    template <int I> struct is_placeholder< placeholder<I> const& > : mpl::true_   { };
 
     // This class template provides a Polymorphic Function Object to be used
     // with fusion::transform. It is applied to the sequence of arguments that
@@ -75,17 +75,17 @@
     // from the final call. 
     template<class FinalArgs> struct argument_transform
     {
-        FinalArgs const & ref_final_args;
+        FinalArgs const& ref_final_args;
     public:
 
-        explicit argument_transform(FinalArgs const & final_args)
+        explicit argument_transform(FinalArgs const& final_args)
             : ref_final_args(final_args)
         { }
 
         // A placeholder? Replace it with an argument from the final call...
         template <int Index>
         inline typename result_of::at_c<FinalArgs const, Index>::type
-        operator()(placeholder<Index> const &) const
+        operator()(placeholder<Index> const&) const
         {
             return fusion::at_c<Index>(this->ref_final_args);
         }
@@ -117,7 +117,7 @@
         bound_args fsq_bind_args;
     public:
 
-        fused_bound_function(BindArgs const & bind_args)
+        fused_bound_function(BindArgs const& bind_args)
           : fsq_bind_args(bind_args)
         { }
 
@@ -141,7 +141,7 @@
 
         template <class FinalArgs>
         inline typename result_impl<FinalArgs>::type 
-        operator()(FinalArgs const & final_args) const
+        operator()(FinalArgs const& final_args) const
         {
             return fusion::invoke( fusion::front(this->fsq_bind_args),
                 fusion::transform( fusion::pop_front(this->fsq_bind_args),
@@ -231,17 +231,17 @@
     }
 
     template <typename A> 
-    inline int operator()(A const & a) const
+    inline int operator()(A const& a) const
     {
-        std::cout << "operator()(A const & a)" << std::endl;
+        std::cout << "operator()(A const& a)" << std::endl;
         std::cout << "  a = " << a << "  A = " << typeid(A).name() << std::endl;
         return 1;
     }
 
     template <typename A, typename B> 
-    inline int operator()(A const & a, B & b) const
+    inline int operator()(A const& a, B & b) const
     {
-        std::cout << "operator()(A const & a, B & b)" << std::endl;
+        std::cout << "operator()(A const& a, B & b)" << std::endl;
         std::cout << "  a = " << a << "  A = " << typeid(A).name() << std::endl;
         std::cout << "  b = " << b << "  B = " << typeid(B).name() << std::endl;
         return 2;
Modified: sandbox/SOC/2009/fusion/libs/fusion/example/performance/functional.cpp
==============================================================================
--- sandbox/SOC/2009/fusion/libs/fusion/example/performance/functional.cpp	(original)
+++ sandbox/SOC/2009/fusion/libs/fusion/example/performance/functional.cpp	2009-07-10 18:07:00 EDT (Fri, 10 Jul 2009)
@@ -36,7 +36,7 @@
     struct fused_sum
     {
         template <typename Seq>
-        int operator()(Seq const & seq) const
+        int operator()(Seq const& seq) const
         {
             int state = 0;
             return boost::fusion::fold(seq, state, sum_op());
@@ -49,7 +49,7 @@
         struct sum_op
         {
             template <typename T>
-            int operator()(T const & elem, int value) const
+            int operator()(T const& elem, int value) const
             {
               return value + sizeof(T) * elem;
             }
@@ -72,22 +72,22 @@
             return 0;
         }
         template<typename T0>
-        inline int operator()(T0 const & a0) const
+        inline int operator()(T0 const& a0) const
         {
             return a0;
         } 
         template<typename T0, typename T1>
-        inline int operator()(T0 const & a0, T1 const & a1) const
+        inline int operator()(T0 const& a0, T1 const& a1) const
         {
             return a0 + a1;
         } 
         template<typename T0, typename T1, typename T2>
-        inline int operator()(T0 const & a0, T1 const & a1, T2 a2) const
+        inline int operator()(T0 const& a0, T1 const& a1, T2 a2) const
         {
             return a0 + a1 + a2;
         } 
         template<typename T0, typename T1, typename T2, typename T3>
-        inline int operator()(T0 const & a0, T1 const & a1, T2 const & a2, T3 const & a3) const
+        inline int operator()(T0 const& a0, T1 const& a1, T2 const& a2, T3 const& a3) const
         {
             return a0 + a1 + a2 + a3;
         } 
@@ -96,7 +96,7 @@
     };
 
     template<typename F>
-    double call_unfused(F const & func, int & j) 
+    double call_unfused(F const& func, int & j) 
     {
         boost::timer tim;
         int i = 0;
@@ -139,7 +139,7 @@
     }
 
     template<typename F>
-    double call_fused_ra(F const & func, int & j) 
+    double call_fused_ra(F const& func, int & j) 
     {
         boost::timer tim;
         int i = 0;
@@ -192,7 +192,7 @@
     }
 
     template<typename F>
-    double call_fused(F const & func, int & j) 
+    double call_fused(F const& func, int & j) 
     {
         boost::timer tim;
         int i = 0;
Modified: sandbox/SOC/2009/fusion/libs/fusion/test/Jamfile
==============================================================================
--- sandbox/SOC/2009/fusion/libs/fusion/test/Jamfile	(original)
+++ sandbox/SOC/2009/fusion/libs/fusion/test/Jamfile	2009-07-10 18:07:00 EDT (Fri, 10 Jul 2009)
@@ -51,7 +51,7 @@
     [ run sequence/as_vector.cpp :  :  :  : ]
     [ run sequence/boost_tuple.cpp :  :  :  : ]
     [ run sequence/cons.cpp :  :  :  : ]
-#   [ run sequence/deduce_sequence.cpp : : : : ]
+    [ run sequence/deduce_sequence.cpp : : : : ]
     [ run sequence/filter_view.cpp :  :  :  : ]
     [ run sequence/io.cpp :  :  :  : ]
     [ run sequence/iterator_range.cpp :  :  :  : ]
Modified: sandbox/SOC/2009/fusion/libs/fusion/test/functional/fused.cpp
==============================================================================
--- sandbox/SOC/2009/fusion/libs/fusion/test/functional/fused.cpp	(original)
+++ sandbox/SOC/2009/fusion/libs/fusion/test/functional/fused.cpp	2009-07-10 18:07:00 EDT (Fri, 10 Jul 2009)
@@ -28,13 +28,13 @@
     typedef int result_type;
 
     template <typename T0, typename T1>
-    int operator()(T0 const & x, T1 const & y) const
+    int operator()(T0 const& x, T1 const& y) const
     {
         return 1+x-y;
     }
 
     template <typename T0, typename T1>
-    int operator()(T0 const & x, T1 const & y) 
+    int operator()(T0 const& x, T1 const& y) 
     {
         return 2+x-y;
     }
@@ -59,7 +59,7 @@
     typedef fusion::fused< test_func<> > ff;
     ff fused_func;
 
-    typedef fusion::fused< test_func<noncopyable> & > ffr;
+    typedef fusion::fused< test_func<noncopyable>& > ffr;
     ffr fused_func_ref(f);
 
     typedef fusion::fused< test_func<> const > ffc;
@@ -68,7 +68,7 @@
     typedef fusion::fused< test_func<> > const ffc2;
     ffc2 fused_func_c2;
 
-    typedef fusion::fused< test_func<noncopyable> const & > ffcr;
+    typedef fusion::fused< test_func<noncopyable> const& > ffcr;
     ffcr fused_func_c_ref(f);
 
     typedef fusion::vector<int,char> vec;
Modified: sandbox/SOC/2009/fusion/libs/fusion/test/functional/fused_function_object.cpp
==============================================================================
--- sandbox/SOC/2009/fusion/libs/fusion/test/functional/fused_function_object.cpp	(original)
+++ sandbox/SOC/2009/fusion/libs/fusion/test/functional/fused_function_object.cpp	2009-07-10 18:07:00 EDT (Fri, 10 Jul 2009)
@@ -32,13 +32,13 @@
     };
 
     template <typename T0, typename T1>
-    int operator()(T0 const & x, T1 const & y) const
+    int operator()(T0 const& x, T1 const& y) const
     {
         return 1+x-y;
     }
 
     template <typename T0, typename T1>
-    int operator()(T0 const & x, T1 const & y) 
+    int operator()(T0 const& x, T1 const& y) 
     {
         return 2+x-y;
     }
@@ -60,10 +60,10 @@
 {
     test_func<noncopyable> f;
     fusion::fused_function_object< test_func<> > fused_func;
-    fusion::fused_function_object< test_func<noncopyable> & > fused_func_ref(f);
+    fusion::fused_function_object< test_func<noncopyable>& > fused_func_ref(f);
     fusion::fused_function_object< test_func<> const > fused_func_c;
     fusion::fused_function_object< test_func<> > const fused_func_c2;
-    fusion::fused_function_object< test_func<noncopyable> const & > fused_func_c_ref(f);
+    fusion::fused_function_object< test_func<noncopyable> const& > fused_func_c_ref(f);
 
     fusion::vector<int,char> lv_vec(1,'\004');
     BOOST_TEST(fused_func(lv_vec) == 1);
Modified: sandbox/SOC/2009/fusion/libs/fusion/test/functional/fused_procedure.cpp
==============================================================================
--- sandbox/SOC/2009/fusion/libs/fusion/test/functional/fused_procedure.cpp	(original)
+++ sandbox/SOC/2009/fusion/libs/fusion/test/functional/fused_procedure.cpp	2009-07-10 18:07:00 EDT (Fri, 10 Jul 2009)
@@ -31,13 +31,13 @@
     : Base
 {
     template <typename T0, typename T1>
-    int operator()(T0 const & x, T1 const & y) const
+    int operator()(T0 const& x, T1 const& y) const
     {
         return effect = 1+x-y;
     }
 
     template <typename T0, typename T1>
-    int operator()(T0 const & x, T1 const & y) 
+    int operator()(T0 const& x, T1 const& y) 
     {
         return effect = 2+x-y;
     }
@@ -59,10 +59,10 @@
 {
     test_func<noncopyable> f;
     fusion::fused_procedure< test_func<> > fused_proc;
-    fusion::fused_procedure< test_func<noncopyable> & > fused_proc_ref(f);
+    fusion::fused_procedure< test_func<noncopyable>& > fused_proc_ref(f);
     fusion::fused_procedure< test_func<> const > fused_proc_c;
     fusion::fused_procedure< test_func<> > const fused_proc_c2;
-    fusion::fused_procedure< test_func<noncopyable> const & > fused_proc_c_ref(f);
+    fusion::fused_procedure< test_func<noncopyable> const& > fused_proc_c_ref(f);
 
     fusion::vector<int,char> lv_vec(1,'\004');
     CHECK_EFFECT(fused_proc(lv_vec), 1);
Modified: sandbox/SOC/2009/fusion/libs/fusion/test/functional/invoke.cpp
==============================================================================
--- sandbox/SOC/2009/fusion/libs/fusion/test/functional/invoke.cpp	(original)
+++ sandbox/SOC/2009/fusion/libs/fusion/test/functional/invoke.cpp	2009-07-10 18:07:00 EDT (Fri, 10 Jul 2009)
@@ -30,7 +30,7 @@
 namespace fusion = boost::fusion;
 
 template <typename T>
-inline T const & const_(T const & t)
+inline T const& const_(T const& t)
 {
     return t;
 }
@@ -67,8 +67,8 @@
 
     int operator()(int i, object &)             { return 4 + i; }
     int operator()(int i, object &) const       { return 5 + i; }
-    int operator()(int i, object const &)       { return 6 + i; }
-    int operator()(int i, object const &) const { return 7 + i; }
+    int operator()(int i, object const&)       { return 6 + i; }
+    int operator()(int i, object const&) const { return 7 + i; }
 
     int operator()(int i, object &, object_nc &)       { return 10 + i; }
     int operator()(int i, object &, object_nc &) const { return 11 + i; }
@@ -111,7 +111,7 @@
 int nullary() { return 16; }
 int unary(int i) { return 17 + i; }
 int binary1(int i, object &) { return 18 + i; }
-int binary2(int i, object const &) { return 19 + i; }
+int binary2(int i, object const&) { return 19 + i; }
 
 typedef int (*                   func_ptr)(int);
 typedef int (* const           c_func_ptr)(int);
@@ -162,10 +162,10 @@
 fusion::single_view<members &> sv_ref_ctx(  that);
 fusion::single_view<members *> sv_ptr_ctx(& that);
 fusion::single_view<members const  > sv_obj_c_ctx(  that);
-fusion::single_view<members const &> sv_ref_c_ctx(  that);
+fusion::single_view<members const&> sv_ref_c_ctx(  that);
 fusion::single_view<members const *> sv_ptr_c_ctx(& that);
-fusion::single_view<std::auto_ptr<members> const &> sv_spt_ctx(spt_that);
-fusion::single_view< std::auto_ptr<members const> const &> sv_spt_c_ctx(spt_that_c);
+fusion::single_view<std::auto_ptr<members> const&> sv_spt_ctx(spt_that);
+fusion::single_view< std::auto_ptr<members const> const&> sv_spt_c_ctx(spt_that_c);
 
 derived derived_that;
 
@@ -176,10 +176,10 @@
 fusion::single_view<derived &> sv_ref_d_ctx(  derived_that);
 fusion::single_view<derived *> sv_ptr_d_ctx(& derived_that);
 fusion::single_view<derived const  > sv_obj_c_d_ctx(  derived_that);
-fusion::single_view<derived const &> sv_ref_c_d_ctx(  derived_that);
+fusion::single_view<derived const&> sv_ref_c_d_ctx(  derived_that);
 fusion::single_view<derived const *> sv_ptr_c_d_ctx(& derived_that);
-fusion::single_view<std::auto_ptr<derived> const &> sv_spt_d_ctx(spt_derived_that);
-fusion::single_view< std::auto_ptr<derived const> const &> sv_spt_c_d_ctx(spt_derived_that_c);
+fusion::single_view<std::auto_ptr<derived> const&> sv_spt_d_ctx(spt_derived_that);
+fusion::single_view< std::auto_ptr<derived const> const&> sv_spt_c_d_ctx(spt_derived_that_c);
 
 template <class Sequence>
 void test_sequence_n(Sequence & seq, mpl::int_<0>)
@@ -195,15 +195,15 @@
     // to be const with an explicit template argument. We can also request
     // the function object to be pased by reference...
     BOOST_TEST(const_(f)() == fusion::invoke<nullary_fobj const  >(const_(f),        seq ));
-    BOOST_TEST(const_(f)() == fusion::invoke<nullary_fobj const &>(const_(f), const_(seq)));
+    BOOST_TEST(const_(f)() == fusion::invoke<nullary_fobj const&>(const_(f), const_(seq)));
 
     nullary_fobj_nc nc_f;
     // ...and we further ensure there is no copying in this case, using a
     // noncopyable function object.
     BOOST_TEST(nc_f () == fusion::invoke<nullary_fobj_nc &>(nc_f ,        seq ));
     BOOST_TEST(nc_f () == fusion::invoke<nullary_fobj_nc &>(nc_f , const_(seq)));
-    BOOST_TEST(const_(nc_f)() == fusion::invoke<nullary_fobj_nc const &>(const_(nc_f),        seq ));
-    BOOST_TEST(const_(nc_f)() == fusion::invoke<nullary_fobj_nc const &>(const_(nc_f), const_(seq)));
+    BOOST_TEST(const_(nc_f)() == fusion::invoke<nullary_fobj_nc const&>(const_(nc_f),        seq ));
+    BOOST_TEST(const_(nc_f)() == fusion::invoke<nullary_fobj_nc const&>(const_(nc_f), const_(seq)));
 
     // Builtin Functions
 
@@ -254,13 +254,13 @@
     BOOST_TEST(f(element1) == fusion::invoke(f , seq ));
     BOOST_TEST(f(element1) == fusion::invoke(f , const_(seq)));
     BOOST_TEST(const_(f)(element1) == fusion::invoke<fobj const  >(const_(f), seq ));
-    BOOST_TEST(const_(f)(element1) == fusion::invoke<fobj const &>(const_(f), const_(seq)));
+    BOOST_TEST(const_(f)(element1) == fusion::invoke<fobj const&>(const_(f), const_(seq)));
 
     fobj_nc nc_f;
     BOOST_TEST(nc_f(element1) == fusion::invoke<fobj_nc &>(nc_f, seq ));
     BOOST_TEST(nc_f(element1) == fusion::invoke<fobj_nc &>(nc_f, const_(seq)));
-    BOOST_TEST(const_(nc_f)(element1) == fusion::invoke<fobj_nc const &>(const_(nc_f), seq ));
-    BOOST_TEST(const_(nc_f)(element1) == fusion::invoke<fobj_nc const &>(const_(nc_f), const_(seq)));
+    BOOST_TEST(const_(nc_f)(element1) == fusion::invoke<fobj_nc const&>(const_(nc_f), seq ));
+    BOOST_TEST(const_(nc_f)(element1) == fusion::invoke<fobj_nc const&>(const_(nc_f), const_(seq)));
 
     BOOST_TEST(unary(element1) == fusion::invoke<int (&)(int)>(unary, seq));
     BOOST_TEST(func_ptr1(element1) == fusion::invoke(func_ptr1, seq));
Modified: sandbox/SOC/2009/fusion/libs/fusion/test/functional/invoke_function_object.cpp
==============================================================================
--- sandbox/SOC/2009/fusion/libs/fusion/test/functional/invoke_function_object.cpp	(original)
+++ sandbox/SOC/2009/fusion/libs/fusion/test/functional/invoke_function_object.cpp	2009-07-10 18:07:00 EDT (Fri, 10 Jul 2009)
@@ -30,7 +30,7 @@
 namespace fusion = boost::fusion;
 
 template <typename T>
-inline T const & const_(T const & t)
+inline T const& const_(T const& t)
 {
     return t;
 }
@@ -70,8 +70,8 @@
 
     int operator()(int i, object &)             { return 4 + i; }
     int operator()(int i, object &) const       { return 5 + i; }
-    int operator()(int i, object const &)       { return 6 + i; }
-    int operator()(int i, object const &) const { return 7 + i; }
+    int operator()(int i, object const&)       { return 6 + i; }
+    int operator()(int i, object const&) const { return 7 + i; }
 
     int operator()(int i, object &, object_nc &)       { return 10 + i; }
     int operator()(int i, object &, object_nc &) const { return 11 + i; }
@@ -133,15 +133,15 @@
     // to be const with an explicit template argument. We can also request
     // the function object to be pased by reference...
     BOOST_TEST(const_(f)() == fusion::invoke_function_object<nullary_fobj const  >(const_(f),        seq ));
-    BOOST_TEST(const_(f)() == fusion::invoke_function_object<nullary_fobj const &>(const_(f), const_(seq)));
+    BOOST_TEST(const_(f)() == fusion::invoke_function_object<nullary_fobj const&>(const_(f), const_(seq)));
 
     nullary_fobj_nc nc_f;
     // ...and we further ensure there is no copying in this case, using a
     // noncopyable function object.
     BOOST_TEST(nc_f () == fusion::invoke_function_object<nullary_fobj_nc &>(nc_f ,        seq ));
     BOOST_TEST(nc_f () == fusion::invoke_function_object<nullary_fobj_nc &>(nc_f , const_(seq)));
-    BOOST_TEST(const_(nc_f)() == fusion::invoke_function_object<nullary_fobj_nc const &>(const_(nc_f),        seq ));
-    BOOST_TEST(const_(nc_f)() == fusion::invoke_function_object<nullary_fobj_nc const &>(const_(nc_f), const_(seq)));
+    BOOST_TEST(const_(nc_f)() == fusion::invoke_function_object<nullary_fobj_nc const&>(const_(nc_f),        seq ));
+    BOOST_TEST(const_(nc_f)() == fusion::invoke_function_object<nullary_fobj_nc const&>(const_(nc_f), const_(seq)));
 }
 
 template <class Sequence>
@@ -151,13 +151,13 @@
     BOOST_TEST(f(element1) == fusion::invoke_function_object(f , seq ));
     BOOST_TEST(f(element1) == fusion::invoke_function_object(f , const_(seq)));
     BOOST_TEST(const_(f)(element1) == fusion::invoke_function_object<fobj const  >(const_(f), seq ));
-    BOOST_TEST(const_(f)(element1) == fusion::invoke_function_object<fobj const &>(const_(f), const_(seq)));
+    BOOST_TEST(const_(f)(element1) == fusion::invoke_function_object<fobj const&>(const_(f), const_(seq)));
 
     fobj_nc nc_f;
     BOOST_TEST(nc_f(element1) == fusion::invoke_function_object<fobj_nc &>(nc_f, seq ));
     BOOST_TEST(nc_f(element1) == fusion::invoke_function_object<fobj_nc &>(nc_f, const_(seq)));
-    BOOST_TEST(const_(nc_f)(element1) == fusion::invoke_function_object<fobj_nc const &>(const_(nc_f), seq ));
-    BOOST_TEST(const_(nc_f)(element1) == fusion::invoke_function_object<fobj_nc const &>(const_(nc_f), const_(seq)));
+    BOOST_TEST(const_(nc_f)(element1) == fusion::invoke_function_object<fobj_nc const&>(const_(nc_f), seq ));
+    BOOST_TEST(const_(nc_f)(element1) == fusion::invoke_function_object<fobj_nc const&>(const_(nc_f), const_(seq)));
 }
 
 template <class Sequence>
Modified: sandbox/SOC/2009/fusion/libs/fusion/test/functional/invoke_procedure.cpp
==============================================================================
--- sandbox/SOC/2009/fusion/libs/fusion/test/functional/invoke_procedure.cpp	(original)
+++ sandbox/SOC/2009/fusion/libs/fusion/test/functional/invoke_procedure.cpp	2009-07-10 18:07:00 EDT (Fri, 10 Jul 2009)
@@ -28,7 +28,7 @@
 namespace fusion = boost::fusion;
 
 template <typename T>
-inline T const & const_(T const & t)
+inline T const& const_(T const& t)
 {
     return t;
 }
@@ -69,10 +69,10 @@
 fusion::single_view<members &> sv_ref_ctx(  that);
 fusion::single_view<members *> sv_ptr_ctx(& that);
 fusion::single_view<members const  > sv_obj_c_ctx(  that);
-fusion::single_view<members const &> sv_ref_c_ctx(  that);
+fusion::single_view<members const&> sv_ref_c_ctx(  that);
 fusion::single_view<members const *> sv_ptr_c_ctx(& that);
-fusion::single_view<std::auto_ptr<members> const &> sv_spt_ctx(spt_that);
-fusion::single_view< std::auto_ptr<members const> const &> sv_spt_c_ctx(spt_that_c);
+fusion::single_view<std::auto_ptr<members> const&> sv_spt_ctx(spt_that);
+fusion::single_view< std::auto_ptr<members const> const&> sv_spt_c_ctx(spt_that_c);
 
 struct fobj
 {
@@ -84,8 +84,8 @@
 
     int operator()(int & i, object &)             { return i = 4; }
     int operator()(int & i, object &) const       { return i = 5; }
-    int operator()(int & i, object const &)       { return i = 6; }
-    int operator()(int & i, object const &) const { return i = 7; }
+    int operator()(int & i, object const&)       { return i = 6; }
+    int operator()(int & i, object const&) const { return i = 7; }
 
     int operator()(int & i, object &, object_nc &)       { return i = 10; }
     int operator()(int & i, object &, object_nc &) const { return i = 11; }
@@ -104,7 +104,7 @@
 int nullary() { return element1 = 16; }
 int unary(int & i) { return  i = 17; }
 int binary1(int & i, object &) { return i = 18; }
-int binary2(int & i, object const &) { return i = 19; }
+int binary2(int & i, object const&) { return i = 19; }
 
 typedef int (*                   func_ptr)(int &);
 typedef int (* const           c_func_ptr)(int &);
@@ -141,15 +141,15 @@
     // to be const with an explicit template argument. We can also request
     // the function object to be pased by reference...
     COMPARE_EFFECT(const_(f)(), fusion::invoke_procedure<fobj const  >(const_(f),        seq ));
-    COMPARE_EFFECT(const_(f)(), fusion::invoke_procedure<fobj const &>(const_(f), const_(seq)));
+    COMPARE_EFFECT(const_(f)(), fusion::invoke_procedure<fobj const&>(const_(f), const_(seq)));
 
     fobj_nc nc_f;
     // ...and we further ensure there is no copying in this case, using a
     // noncopyable function object.
     COMPARE_EFFECT(nc_f (), fusion::invoke_procedure<fobj_nc &>(nc_f ,        seq ));
     COMPARE_EFFECT(nc_f (), fusion::invoke_procedure<fobj_nc &>(nc_f , const_(seq)));
-    COMPARE_EFFECT(const_(nc_f)(), fusion::invoke_procedure<fobj_nc const &>(const_(nc_f),        seq ));
-    COMPARE_EFFECT(const_(nc_f)(), fusion::invoke_procedure<fobj_nc const &>(const_(nc_f), const_(seq)));
+    COMPARE_EFFECT(const_(nc_f)(), fusion::invoke_procedure<fobj_nc const&>(const_(nc_f),        seq ));
+    COMPARE_EFFECT(const_(nc_f)(), fusion::invoke_procedure<fobj_nc const&>(const_(nc_f), const_(seq)));
 
     // Builtin Functions
 
@@ -180,13 +180,13 @@
     COMPARE_EFFECT(f(element1), fusion::invoke_procedure(f , seq ));
     COMPARE_EFFECT(f(element1), fusion::invoke_procedure(f , const_(seq)));
     COMPARE_EFFECT(const_(f)(element1), fusion::invoke_procedure<fobj const  >(const_(f), seq ));
-    COMPARE_EFFECT(const_(f)(element1), fusion::invoke_procedure<fobj const &>(const_(f), const_(seq)));
+    COMPARE_EFFECT(const_(f)(element1), fusion::invoke_procedure<fobj const&>(const_(f), const_(seq)));
 
     fobj_nc nc_f;
     COMPARE_EFFECT(nc_f(element1), fusion::invoke_procedure<fobj_nc &>(nc_f, seq ));
     COMPARE_EFFECT(nc_f(element1), fusion::invoke_procedure<fobj_nc &>(nc_f, const_(seq)));
-    COMPARE_EFFECT(const_(nc_f)(element1), fusion::invoke_procedure<fobj_nc const &>(const_(nc_f), seq ));
-    COMPARE_EFFECT(const_(nc_f)(element1), fusion::invoke_procedure<fobj_nc const &>(const_(nc_f), const_(seq)));
+    COMPARE_EFFECT(const_(nc_f)(element1), fusion::invoke_procedure<fobj_nc const&>(const_(nc_f), seq ));
+    COMPARE_EFFECT(const_(nc_f)(element1), fusion::invoke_procedure<fobj_nc const&>(const_(nc_f), const_(seq)));
 
     COMPARE_EFFECT(unary(element1), fusion::invoke_procedure<int (&)(int &)>(unary, seq));
     COMPARE_EFFECT(func_ptr1(element1), fusion::invoke_procedure(func_ptr1, seq));
Modified: sandbox/SOC/2009/fusion/libs/fusion/test/functional/make_fused.cpp
==============================================================================
--- sandbox/SOC/2009/fusion/libs/fusion/test/functional/make_fused.cpp	(original)
+++ sandbox/SOC/2009/fusion/libs/fusion/test/functional/make_fused.cpp	2009-07-10 18:07:00 EDT (Fri, 10 Jul 2009)
@@ -27,13 +27,13 @@
     typedef int result_type;
 
     template <typename T0, typename T1>
-    int operator()(T0 const & x, T1 const & y) const
+    int operator()(T0 const& x, T1 const& y) const
     {
         return 1+x-y;
     }
 
     template <typename T0, typename T1>
-    int operator()(T0 const & x, T1 const & y) 
+    int operator()(T0 const& x, T1 const& y) 
     {
         return 2+x-y;
     }
@@ -52,7 +52,7 @@
 };
 
 template <typename T>
-inline T const & const_(T const & t)
+inline T const& const_(T const& t)
 {
     return t;
 }
Modified: sandbox/SOC/2009/fusion/libs/fusion/test/functional/make_fused_function_object.cpp
==============================================================================
--- sandbox/SOC/2009/fusion/libs/fusion/test/functional/make_fused_function_object.cpp	(original)
+++ sandbox/SOC/2009/fusion/libs/fusion/test/functional/make_fused_function_object.cpp	2009-07-10 18:07:00 EDT (Fri, 10 Jul 2009)
@@ -37,13 +37,13 @@
     };
 
     template <typename T0, typename T1>
-    int operator()(T0 const & x, T1 const & y) const
+    int operator()(T0 const& x, T1 const& y) const
     {
         return 1+x-y;
     }
 
     template <typename T0, typename T1>
-    int operator()(T0 const & x, T1 const & y) 
+    int operator()(T0 const& x, T1 const& y) 
     {
         return 2+x-y;
     }
@@ -62,7 +62,7 @@
 };
 
 template <typename T>
-inline T const & const_(T const & t)
+inline T const& const_(T const& t)
 {
     return t;
 }
Modified: sandbox/SOC/2009/fusion/libs/fusion/test/functional/make_fused_procedure.cpp
==============================================================================
--- sandbox/SOC/2009/fusion/libs/fusion/test/functional/make_fused_procedure.cpp	(original)
+++ sandbox/SOC/2009/fusion/libs/fusion/test/functional/make_fused_procedure.cpp	2009-07-10 18:07:00 EDT (Fri, 10 Jul 2009)
@@ -33,13 +33,13 @@
     : Base
 {
     template <typename T0, typename T1>
-    int operator()(T0 const & x, T1 const & y) const
+    int operator()(T0 const& x, T1 const& y) const
     {
         return effect = 1+x-y;
     }
 
     template <typename T0, typename T1>
-    int operator()(T0 const & x, T1 const & y) 
+    int operator()(T0 const& x, T1 const& y) 
     {
         return effect = 2+x-y;
     }
@@ -58,7 +58,7 @@
 };
 
 template <typename T>
-inline T const & const_(T const & t)
+inline T const& const_(T const& t)
 {
     return t;
 }
Modified: sandbox/SOC/2009/fusion/libs/fusion/test/functional/make_unfused.cpp
==============================================================================
--- sandbox/SOC/2009/fusion/libs/fusion/test/functional/make_unfused.cpp	(original)
+++ sandbox/SOC/2009/fusion/libs/fusion/test/functional/make_unfused.cpp	2009-07-10 18:07:00 EDT (Fri, 10 Jul 2009)
@@ -47,14 +47,14 @@
     { };
 
     template <typename Seq>
-    long operator()(Seq const & seq) const
+    long operator()(Seq const& seq) const
     {
         long state = 0;
         return fusion::fold(seq, state, fold_op());
     }
 
     template < typename Seq >
-    long operator()(Seq const & seq) 
+    long operator()(Seq const& seq) 
     {
         long state = 100;
         return fusion::fold(seq, state, fold_op());
@@ -76,7 +76,7 @@
 };
 
 template <typename T>
-inline T const & const_(T const & t)
+inline T const& const_(T const& t)
 {
     return t;
 }
Modified: sandbox/SOC/2009/fusion/libs/fusion/test/functional/unfused.cpp
==============================================================================
--- sandbox/SOC/2009/fusion/libs/fusion/test/functional/unfused.cpp	(original)
+++ sandbox/SOC/2009/fusion/libs/fusion/test/functional/unfused.cpp	2009-07-10 18:07:00 EDT (Fri, 10 Jul 2009)
@@ -37,14 +37,14 @@
     { };
 
     template <typename Seq>
-    long operator()(Seq const & seq) const
+    long operator()(Seq const& seq) const
     {
         long state = 0;
         return fusion::fold(seq, state, fold_op());
     }
 
     template <typename Seq>
-    long operator()(Seq const & seq) 
+    long operator()(Seq const& seq) 
     {
         long state = 100;
         return fusion::fold(seq, state, fold_op());
@@ -80,10 +80,10 @@
 
     test_func<noncopyable> f;
     fusion::unfused< test_func<> > unfused_func;
-    fusion::unfused< test_func<noncopyable> & > unfused_func_ref(f);
+    fusion::unfused< test_func<noncopyable>& > unfused_func_ref(f);
     fusion::unfused< test_func<> const > unfused_func_c;
     fusion::unfused< test_func<> > const unfused_func_c2;
-    fusion::unfused< test_func<noncopyable> const & > unfused_func_c_ref(f);
+    fusion::unfused< test_func<noncopyable> const& > unfused_func_c_ref(f);
 
     BOOST_TEST(unfused_func() == 100);
     BOOST_TEST(unfused_func_ref() == 100);
Modified: sandbox/SOC/2009/fusion/libs/fusion/test/functional/unfused_typed.cpp
==============================================================================
--- sandbox/SOC/2009/fusion/libs/fusion/test/functional/unfused_typed.cpp	(original)
+++ sandbox/SOC/2009/fusion/libs/fusion/test/functional/unfused_typed.cpp	2009-07-10 18:07:00 EDT (Fri, 10 Jul 2009)
@@ -43,14 +43,14 @@
     { };
 
     template <typename Seq>
-    long operator()(Seq const & seq) const
+    long operator()(Seq const& seq) const
     {
         long state = 0;
         return fusion::fold(seq, state, fold_op());
     }
 
     template < typename Seq >
-    long operator()(Seq const & seq) 
+    long operator()(Seq const& seq) 
     {
         long state = 100;
         return fusion::fold(seq, state, fold_op());
@@ -63,7 +63,7 @@
         typedef long result_type;
 
         template <typename T>
-        long operator()(T const & elem, long value) const
+        long operator()(T const& elem, long value) const
         {
           return value + sizeof(T) * elem;
         }
@@ -97,10 +97,10 @@
 {
     test_func<noncopyable> f;
     fusion::unfused_typed< test_func<>, types0 > unfused_func;
-    fusion::unfused_typed< test_func<noncopyable> &, types0 > unfused_func_ref(f);
+    fusion::unfused_typed< test_func<noncopyable>&, types0 > unfused_func_ref(f);
     fusion::unfused_typed< test_func<> const, types0 > unfused_func_c;
     fusion::unfused_typed< test_func<>, types0 > const unfused_func_c2;
-    fusion::unfused_typed< test_func<noncopyable> const &, types0 > unfused_func_c_ref(f);
+    fusion::unfused_typed< test_func<noncopyable> const&, types0 > unfused_func_c_ref(f);
 
     BOOST_TEST(unfused_func() == 100);
     BOOST_TEST(unfused_func_ref() == 100);
@@ -113,10 +113,10 @@
 {
     test_func<noncopyable> f;
     fusion::unfused_typed< test_func<>, types1 > unfused_func;
-    fusion::unfused_typed< test_func<noncopyable> &, types1 > unfused_func_ref(f);
+    fusion::unfused_typed< test_func<noncopyable>&, types1 > unfused_func_ref(f);
     fusion::unfused_typed< test_func<> const, types1 > unfused_func_c;
     fusion::unfused_typed< test_func<>, types1 > const unfused_func_c2;
-    fusion::unfused_typed< test_func<noncopyable> const &, types1 > unfused_func_c_ref(f);
+    fusion::unfused_typed< test_func<noncopyable> const&, types1 > unfused_func_c_ref(f);
 
     long lvalue = 1;
     BOOST_TEST_NO_VC71(unfused_func(lvalue) == 100);
@@ -135,10 +135,10 @@
 {
     test_func<noncopyable> f;
     fusion::unfused_typed< test_func<>, types3 > unfused_func;
-    fusion::unfused_typed< test_func<noncopyable> &, types3 > unfused_func_ref(f);
+    fusion::unfused_typed< test_func<noncopyable>&, types3 > unfused_func_ref(f);
     fusion::unfused_typed< test_func<> const, types3 > unfused_func_c;
     fusion::unfused_typed< test_func<>, types3 > const unfused_func_c2;
-    fusion::unfused_typed< test_func<noncopyable> const &, types3 > unfused_func_c_ref(f);
+    fusion::unfused_typed< test_func<noncopyable> const&, types3 > unfused_func_c_ref(f);
 
     long lvalue = 1;
     static const long expected = 2*sizeof(int) + 7*sizeof(char);
Modified: sandbox/SOC/2009/fusion/libs/fusion/test/sequence/deduce_sequence.cpp
==============================================================================
--- sandbox/SOC/2009/fusion/libs/fusion/test/sequence/deduce_sequence.cpp	(original)
+++ sandbox/SOC/2009/fusion/libs/fusion/test/sequence/deduce_sequence.cpp	2009-07-10 18:07:00 EDT (Fri, 10 Jul 2009)
@@ -10,11 +10,11 @@
 #include <boost/fusion/mpl.hpp>
 #include <boost/detail/lightweight_test.hpp>
 
+#include <boost/config.hpp>
 #include <boost/mpl/equal.hpp>
-
+#include <boost/static_assert.hpp>
 #include <boost/ref.hpp>
 
-using boost::is_same;
 using boost::reference_wrapper;
 using boost::fusion::traits::deduce;
 using boost::fusion::traits::deduce_sequence;
@@ -26,26 +26,34 @@
 {
     typename deduce_sequence<Args>::type fsq_args;
 
-    test_seq_ctor(Args const & args)
-      : fsq_args(args)
+    test_seq_ctor(Args const& args)
+      : fsq_args(sequence_assign(args))
     {}
 };
 
-#define TEST_SAME_TYPE(a,b) BOOST_TEST(( is_same< a, b >::value ))
-#define TEST_SAME_ELEMENTS(a,b) BOOST_TEST(( boost::mpl::equal< a, b >::type::value ))
+#define TEST_SAME_TYPE(a,b) BOOST_STATIC_ASSERT(( boost::is_same< a, b >::value ))
+#define TEST_SAME_ELEMENTS(a,b) BOOST_STATIC_ASSERT(( boost::mpl::equal< a, b >::type::value ))
 
-typedef fusion::vector<int, int const, int &, int const &> args1;
+typedef fusion::vector<int, int const, int &, int const&> args1;
+#ifdef BOOST_NO_RVALUE_REFERENCES
 typedef fusion::vector<int, int, int &, int> storable1;
+#else
+typedef fusion::vector<int, int, int &, int const&> storable1;
+#endif
 template struct test_seq_ctor<args1>;
 
-typedef fusion::vector< reference_wrapper<int> &, reference_wrapper<int const> &,
-    reference_wrapper<int> const &, reference_wrapper<int const> const & > args2;
-typedef fusion::vector<int &, int const &, int &, int const &> storable2;
+typedef fusion::vector< reference_wrapper<int>&, reference_wrapper<int const>&,
+    reference_wrapper<int> const&, reference_wrapper<int const> const& > args2;
+typedef fusion::vector<int &, int const&, int &, int const&> storable2;
 template struct test_seq_ctor<args2>;
 
 
-typedef fusion::vector<int *, int const *, int const * const, int const * &, int const * const &> args3;
+typedef fusion::vector<int *, int const *, int const * const, int const * &, int const * const&> args3;
+#ifdef BOOST_NO_RVALUE_REFERENCES
 typedef fusion::vector<int *, int const *, int const *, int const * &, int const * > storable3;
+#else
+typedef fusion::vector<int *, int const *, int const *, int const * &, int const * const&> storable3;
+#endif
 template struct test_seq_ctor<args3>;
 
 typedef fusion::vector<int(&)[2], int const(&)[2]> args4;
@@ -57,14 +65,20 @@
     TEST_SAME_TYPE(deduce<int &>::type, int &);
     TEST_SAME_TYPE(deduce<int volatile &>::type,  int volatile &);
 
+    //TODO rvalue tests
     TEST_SAME_TYPE(deduce<int>::type, int);
-    TEST_SAME_TYPE(deduce<int const &>::type, int);
-    TEST_SAME_TYPE(deduce<int const volatile &>::type, int);
-
-    TEST_SAME_TYPE(deduce< reference_wrapper<int> & >::type, int &);
-    TEST_SAME_TYPE(deduce< reference_wrapper<int const> & >::type, int const &);
-    TEST_SAME_TYPE(deduce< reference_wrapper<int> const & >::type, int &);
-    TEST_SAME_TYPE(deduce< reference_wrapper<int const> const & >::type, int const &);
+#ifdef BOOST_NO_RVALUE_REFERENCES
+    TEST_SAME_TYPE(deduce<int const&>::type, int);
+    TEST_SAME_TYPE(deduce<int const volatile&>::type, int);
+#else
+    TEST_SAME_TYPE(deduce<int const&>::type, int const&);
+    TEST_SAME_TYPE(deduce<int const volatile&>::type, int const volatile&);
+#endif
+
+    TEST_SAME_TYPE(deduce< reference_wrapper<int>& >::type, int &);
+    TEST_SAME_TYPE(deduce< reference_wrapper<int const>& >::type, int const&);
+    TEST_SAME_TYPE(deduce< reference_wrapper<int> const& >::type, int &);
+    TEST_SAME_TYPE(deduce< reference_wrapper<int const> const& >::type, int const&);
 
     TEST_SAME_TYPE(deduce< int(&)[2] >::type, int(&)[2]);
     TEST_SAME_TYPE(deduce< int const (&)[2] >::type, int const (&)[2]);
Modified: sandbox/SOC/2009/fusion/libs/fusion/test/sequence/tr1_tuple_auto_conv.cpp
==============================================================================
--- sandbox/SOC/2009/fusion/libs/fusion/test/sequence/tr1_tuple_auto_conv.cpp	(original)
+++ sandbox/SOC/2009/fusion/libs/fusion/test/sequence/tr1_tuple_auto_conv.cpp	2009-07-10 18:07:00 EDT (Fri, 10 Jul 2009)
@@ -20,7 +20,7 @@
         std::tr1::shared_ptr<boost::any> t_;
 
     public:
-        AutoConverter(std::tr1::shared_ptr<boost::any> const & t)
+        AutoConverter(std::tr1::shared_ptr<boost::any> const& t)
           : t_(t)
         {}
 
Modified: sandbox/SOC/2009/fusion/libs/fusion/test/sequence/vector_iterator.cpp
==============================================================================
--- sandbox/SOC/2009/fusion/libs/fusion/test/sequence/vector_iterator.cpp	(original)
+++ sandbox/SOC/2009/fusion/libs/fusion/test/sequence/vector_iterator.cpp	2009-07-10 18:07:00 EDT (Fri, 10 Jul 2009)
@@ -5,7 +5,6 @@
     file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
 ==============================================================================*/
 #include <boost/fusion/container/vector/vector.hpp>
-#include <boost/fusion/container/vector/vector_iterator.hpp>
 
 #define FUSION_SEQUENCE vector
 #define FUSION_TRAVERSAL_TAG random_access_traversal_tag