;  template<> struct reverse_fold_chunk<0> {     template<           typename First         , typename Last         , typename State         , typename BackwardOp         , typename ForwardOp         >     struct result_     {         typedef First iter0;         typedef State fwd_state0;         typedef fwd_state0 bkwd_state0;         typedef bkwd_state0 state;         typedef iter0 iterator;     }; };  template<> struct reverse_fold_chunk<0> {     template<           typename First         , typename Last         , typename State         , typename BackwardOp         , typename ForwardOp         >     struct result_     {         typedef First iter0;         typedef State fwd_state0;         typedef typename apply0< ForwardOp, fwd_state0, typename deref<iter0>::type >::type fwd_state0;         typedef typename mpl::next<iter0>::type iter0;                   typedef fwd_state0 bkwd_state0;         typedef typename apply0< BackwardOp, bkwd_state0, typename deref<iter0>::type >::type bkwd_state0;         typedef bkwd_state0 state;         typedef iter0 iterator;     }; };  template<> struct reverse_fold_chunk<0> {     template<           typename First         , typename Last         , typename State         , typename BackwardOp         , typename ForwardOp         >     struct result_     {         typedef First iter0;         typedef State fwd_state0;         typedef typename apply0< ForwardOp, fwd_state0, typename deref<iter0>::type >::type fwd_state0;         typedef typename mpl::next<iter0>::type iter0;         typedef typename apply0< ForwardOp, fwd_state0, typename deref<iter0>::type >::type fwd_state0;         typedef typename mpl::next<iter0>::type iter0;                   typedef fwd_state0 bkwd_state0;         typedef typename apply0< BackwardOp, bkwd_state0, typename deref<iter0>::type >::type bkwd_state0;         typedef typename apply0< BackwardOp, bkwd_state0, typename deref<iter0>::type >::type bkwd_state0;                   typedef bkwd_state0 state;         typedef iter0 iterator;     }; };  template<> struct reverse_fold_chunk<0> {     template<           typename First         , typename Last         , typename State         , typename BackwardOp         , typename ForwardOp         >     struct result_     {         typedef First iter0;         typedef State fwd_state0;         typedef typename apply0< ForwardOp, fwd_state0, typename deref<iter0>::type >::type fwd_state0;         typedef typename mpl::next<iter0>::type iter0;         typedef typename apply0< ForwardOp, fwd_state0, typename deref<iter0>::type >::type fwd_state0;         typedef typename mpl::next<iter0>::type iter0;         typedef typename apply0< ForwardOp, fwd_state0, typename deref<iter0>::type >::type fwd_state0;         typedef typename mpl::next<iter0>::type iter0;                   typedef fwd_state0 bkwd_state0;         typedef typename apply0< BackwardOp, bkwd_state0, typename deref<iter0>::type >::type bkwd_state0;         typedef typename apply0< BackwardOp, bkwd_state0, typename deref<iter0>::type >::type bkwd_state0;         typedef typename apply0< BackwardOp, bkwd_state0, typename deref<iter0>::type >::type bkwd_state0;                   typedef bkwd_state0 state;         typedef iter0 iterator;     }; };  template<> struct reverse_fold_chunk<0> {     template<           typename First         , typename Last         , typename State         , typename BackwardOp         , typename ForwardOp         >     struct result_     {         typedef First iter0;         typedef State fwd_state0;         typedef typename apply0< ForwardOp, fwd_state0, typename deref<iter0>::type >::type fwd_state0;         typedef typename mpl::next<iter0>::type iter0;         typedef typename apply0< ForwardOp, fwd_state0, typename deref<iter0>::type >::type fwd_state0;         typedef typename mpl::next<iter0>::type iter0;         typedef typename apply0< ForwardOp, fwd_state0, typename deref<iter0>::type >::type fwd_state0;         typedef typename mpl::next<iter0>::type iter0;         typedef typename apply0< ForwardOp, fwd_state0, typename deref<iter0>::type >::type fwd_state0;         typedef typename mpl::next<iter0>::type iter0;                   typedef fwd_state0 bkwd_state0;         typedef typename apply0< BackwardOp, bkwd_state0, typename deref<iter0>::type >::type bkwd_state0;         typedef typename apply0< BackwardOp, bkwd_state0, typename deref<iter0>::type >::type bkwd_state0;         typedef typename apply0< BackwardOp, bkwd_state0, typename deref<iter0>::type >::type bkwd_state0;         typedef typename apply0< BackwardOp, bkwd_state0, typename deref<iter0>::type >::type bkwd_state0;                   typedef bkwd_state0 state;         typedef iter0 iterator;     }; };  template<