Class Body implementing the concept of parallel_scan body must define:
Body::Body( Body&, split ); 
  Splitting constructor. Split b so that this and b can accumulate separately 
-  Destructor
 
void Body::operator()( const Range& r, pre_scan_tag ); 
  Preprocess iterations for range r  
void Body::operator()( const Range& r, final_scan_tag ); 
  Do final processing for iterations of range r  
void Body::reverse_join( Body& a ); 
  Merge preprocessing state of a into this, where a was created earlier from b by b's splitting constructor