static inline void apply(Turns& turns)
 {
     turns.erase( std::unique(turns.begin(), turns.end(),
                              TurnEqualsTo()),
                  turns.end()
                  );
 }
 static inline void apply(Turns& turns)
 {
     turns.erase( std::remove_if(turns.begin(), turns.end(),
                                 IsContinueTurn()),
                  turns.end()
                  );
 }