$include_dir="/home/hyper-archives/boost-commit/include"; include("$include_dir/msg-header.inc") ?>
Subject: [Boost-commit] svn:boost r58734 - in sandbox/msm/libs/msm/doc: . index-Dateien
From: christophe.j.henry_at_[hidden]
Date: 2010-01-05 17:38:28
Author: chenry
Date: 2010-01-05 17:38:27 EST (Tue, 05 Jan 2010)
New Revision: 58734
URL: http://svn.boost.org/trac/boost/changeset/58734
Log:
updated examples
Added:
   sandbox/msm/libs/msm/doc/MsmSimpleFunctors.cpp   (contents, props changed)
   sandbox/msm/libs/msm/doc/SimpleTutorialEuml2.cpp   (contents, props changed)
Binary files modified: 
   sandbox/msm/libs/msm/doc/index-Dateien/image016.jpg
Text files modified: 
   sandbox/msm/libs/msm/doc/CompositeTutorialEuml.cpp   |    89 +-                                      
   sandbox/msm/libs/msm/doc/HistoryEuml.cpp             |    49                                         
   sandbox/msm/libs/msm/doc/OrthogonalDeferredEuml.cpp  |    43                                         
   sandbox/msm/libs/msm/doc/SimpleTimer.cpp             |    32                                         
   sandbox/msm/libs/msm/doc/SimpleTutorialEuml.cpp      |    51 +                                       
   sandbox/msm/libs/msm/doc/iPodSearchEuml.cpp          |    10                                         
   sandbox/msm/libs/msm/doc/index-Dateien/filelist.xml  |    26                                         
   sandbox/msm/libs/msm/doc/index-Dateien/props0033.xml |     2                                         
   sandbox/msm/libs/msm/doc/index.htm                   |  1188 +++++++++++++++++++++------------------ 
   9 files changed, 790 insertions(+), 700 deletions(-)
Modified: sandbox/msm/libs/msm/doc/CompositeTutorialEuml.cpp
==============================================================================
--- sandbox/msm/libs/msm/doc/CompositeTutorialEuml.cpp	(original)
+++ sandbox/msm/libs/msm/doc/CompositeTutorialEuml.cpp	2010-01-05 17:38:27 EST (Tue, 05 Jan 2010)
@@ -21,10 +21,12 @@
     struct open_close : euml_event<open_close>{};
     struct next_song : euml_event<next_song>{};
     struct previous_song : euml_event<previous_song>{};
+    struct region2_evt : euml_event<region2_evt>{};
 
     // A "complicated" event type that carries some data.
     typedef BOOST_TYPEOF(build_attributes(attributes_ << std::string() << DiskTypeEnum() )) cd_detected_attributes;
-    struct cd_detected : euml_event<cd_detected>, cd_detected_attributes
+    struct cd_detected : euml_event<cd_detected>,cd_detected_attributes
+
     {
         cd_detected(){}
         cd_detected(std::string name, DiskTypeEnum diskType)
@@ -37,6 +39,8 @@
     // Concrete FSM implementation 
 
     // The list of FSM states
+    // state not defining any entry or exit
+    typedef BOOST_TYPEOF(build_state( )) Paused;
 
     typedef BOOST_TYPEOF(build_state(Empty_Entry(),Empty_Exit())) Empty;
 
@@ -44,8 +48,7 @@
 
     typedef BOOST_TYPEOF(build_state( Stopped_Entry(),Stopped_Exit() )) Stopped;
 
-    // state not defining any entry or exit
-    typedef BOOST_TYPEOF(build_state( )) Paused;
+
 
     // Playing is now a state machine itself.
 
@@ -56,14 +59,18 @@
 
     typedef BOOST_TYPEOF(build_state( Song3_Entry(),Song3_Exit() )) Song3;
 
+    typedef BOOST_TYPEOF(build_state( Region2State1_Entry(),Region2State1_Exit() )) Region2State1;
+
+    typedef BOOST_TYPEOF(build_state( Region2State2_Entry(),Region2State2_Exit() )) Region2State2;
 
     // Playing has a transition table 
-    typedef BOOST_TYPEOF(build_stt(
+    typedef BOOST_TYPEOF(build_stt((
         //  +------------------------------------------------------------------------------+
-        (   Song1() + next_song()      == Song2()  / start_next_song(),
-            Song2() + previous_song()  == Song1()  / start_prev_song(),
-            Song2() + next_song()      == Song3()  / start_next_song(),
-            Song3() + previous_song()  == Song2()  / start_prev_song()
+            Song2()         == Song1()          + next_song()       / start_next_song(),
+            Song1()         == Song2()          + previous_song()   / start_prev_song(),
+            Song3()         == Song2()          + next_song()       / start_next_song(),
+            Song2()         == Song3()          + previous_song()   / start_prev_song(),
+            Region2State2() == Region2State1()  + region2_evt()
         //  +------------------------------------------------------------------------------+
         ) ) ) playing_transition_table;
 
@@ -76,7 +83,7 @@
 #else
     // but this definition is ok
     struct Playing_ : public BOOST_TYPEOF(build_sm(  playing_transition_table(), //STT
-                                                     init_ << Song1() // Init State
+                                                     init_ << Song1() << Region2State1() // Init State
                                                    )) 
     {
     };
@@ -85,36 +92,36 @@
     typedef msm::back::state_machine<Playing_> Playing;
 
     // replaces the old transition table
-    typedef BOOST_TYPEOF(build_stt
-        ((Stopped() + play()        == Playing()  / start_playback() ,
-          Stopped() + open_close()  == Open()     / open_drawer(),
-          Stopped() + stop()        == Stopped(),
-          //  +------------------------------------------------------------------------------+
-          Open()    + open_close()  == Empty()    / close_drawer(),
-          //  +------------------------------------------------------------------------------+
-          Empty()   + open_close()  == Open()     / open_drawer(),
-          Empty()   + cd_detected() == Stopped()  [good_disk_format()&&(Event_<1>()==Int_<DISK_CD>())] 
-                                                  / (store_cd_info(),process_(play())),
-         //  +------------------------------------------------------------------------------+
-          Playing() + stop()        == Stopped()  / stop_playback(),
-          Playing() + pause()       == Paused()   / pause_playback(),
-          Playing() + open_close()  == Open()     / stop_and_open(),
-          //  +------------------------------------------------------------------------------+
-          Paused()  + end_pause()   == Playing()  / resume_playback(),
-          Paused()  + stop()        == Stopped()  / stop_playback(),
-          Paused()  + open_close()  == Open()     / stop_and_open()
-          //  +------------------------------------------------------------------------------+
-                    ) ) ) transition_table;
+    typedef BOOST_TYPEOF(build_stt((
+        Playing()   == Stopped()  + play()        / start_playback() ,
+        Playing()   == Paused()   + end_pause()   / resume_playback(),
+        //  +------------------------------------------------------------------------------+
+        Empty()     == Open()     + open_close()  / close_drawer(),
+        //  +------------------------------------------------------------------------------+
+        Open()      == Empty()    + open_close()  / open_drawer(),
+        Open()      == Paused()   + open_close()  / stop_and_open(),
+        Open()      == Stopped()  + open_close()  / open_drawer(),
+        Open()      == Playing()  + open_close()  / stop_and_open(),
+        //  +------------------------------------------------------------------------------+
+        Paused()    == Playing()  + pause()       / pause_playback(),
+        //  +------------------------------------------------------------------------------+
+        Stopped()   == Playing()  + stop()        / stop_playback(),
+        Stopped()   == Paused()   + stop()        / stop_playback(),
+        Stopped()   == Empty()    + cd_detected() [good_disk_format()&&(Event_<1>()==Int_<DISK_CD>())] 
+                        / (store_cd_info(),process_(play())),
+        Stopped()   == Stopped()  + stop()                            
+        //  +------------------------------------------------------------------------------+
+        ) ) ) transition_table;
 
     // create a state machine "on the fly"
     typedef BOOST_TYPEOF(build_sm(  transition_table(), //STT
-                                    init_ << Empty(), // Init State
-                                    NoAction(), // Entry
-                                    NoAction(), // Exit
-                                    attributes_ << no_attributes_, // Attributes
-                                    configure_<< no_configure_, // Flags, Deferred events, configuration
-                                    Log_No_Transition() // no_transition handler
-                                    )) player_;
+        init_ << Empty(), // Init State
+        NoAction(), // Entry
+        NoAction(), // Exit
+        attributes_ << no_attributes_, // Attributes
+        configure_<< no_configure_, // Flags, Deferred events, configuration
+        Log_No_Transition() // no_transition handler
+        )) player_;
     // or simply, if no no_transition handler needed:
     //typedef BOOST_TYPEOF(build_sm(  transition_table(), //STT
     //                                Empty(), // Init State
@@ -126,7 +133,7 @@
     //
     // Testing utilities.
     //
-    static char const* const state_names[] = { "Stopped", "Open", "Empty", "Playing", "Paused" };
+    static char const* const state_names[] = { "Stopped", "Paused", "Open", "Empty", "Playing" };
     void pstate(player const& p)
     {
         std::cout << " -> " << state_names[p.current_state()[0]] << std::endl;
@@ -134,7 +141,7 @@
 
     void test()
     {        
-		player p;
+        player p;
         // needed to start the highest-level SM. This will call on_entry and mark the start of the SM
         p.start(); 
         // go to Open, call on_exit on Empty, then action, then on_entry on Open
@@ -146,7 +153,7 @@
         p.process_event(
             cd_detected("louie, louie",DISK_CD)); pstate(p);
         // no need to call play() as the previous event does it in its action method
-		//p.process_event(play());
+        //p.process_event(play());
 
         // make transition happen inside it. Player has no idea about this event but it's ok.
         p.process_event(next_song());pstate(p); //2nd song active
@@ -155,15 +162,15 @@
 
         // at this point, Play is active      
         p.process_event(pause()); pstate(p);
+
         // go back to Playing
         p.process_event(end_pause());  pstate(p);
         p.process_event(pause()); pstate(p);
         p.process_event(stop());  pstate(p);
+
         // event leading to the same state
         // no action method called as none is defined in the transition table
         p.process_event(stop());  pstate(p);
-        // test call to no_transition
-        p.process_event(pause()); pstate(p);
     }
 }
 
Modified: sandbox/msm/libs/msm/doc/HistoryEuml.cpp
==============================================================================
--- sandbox/msm/libs/msm/doc/HistoryEuml.cpp	(original)
+++ sandbox/msm/libs/msm/doc/HistoryEuml.cpp	2010-01-05 17:38:27 EST (Tue, 05 Jan 2010)
@@ -34,9 +34,14 @@
         }
     };
 
+    // Seems to correct random VC9 bug
+    struct PlayingPaused: euml_flag<PlayingPaused>{};
+
     // Concrete FSM implementation 
 
     // The list of FSM states
+    // state not defining any entry or exit
+    typedef BOOST_TYPEOF(build_state( )) Paused;
 
     typedef BOOST_TYPEOF(build_state(Empty_Entry(),Empty_Exit())) Empty;
 
@@ -44,8 +49,6 @@
 
     typedef BOOST_TYPEOF(build_state( Stopped_Entry(),Stopped_Exit() )) Stopped;
 
-    // state not defining any entry or exit
-    typedef BOOST_TYPEOF(build_state( )) Paused;
 
     // Playing is now a state machine itself.
 
@@ -58,12 +61,12 @@
 
 
     // Playing has a transition table 
-    typedef BOOST_TYPEOF(build_stt(
+    typedef BOOST_TYPEOF(build_stt((
         //  +------------------------------------------------------------------------------+
-        (   Song1() + next_song()      == Song2()  / start_next_song(),
-            Song2() + previous_song()  == Song1()  / start_prev_song(),
-            Song2() + next_song()      == Song3()  / start_next_song(),
-            Song3() + previous_song()  == Song2()  / start_prev_song()
+        Song2()  == Song1() + next_song()       / start_next_song(),
+        Song1()  == Song2() + previous_song()   / start_prev_song(),
+        Song3()  == Song2() + next_song()       / start_next_song(),
+        Song2()  == Song3() + previous_song()   / start_prev_song()
         //  +------------------------------------------------------------------------------+
         ) ) ) playing_transition_table;
 
@@ -85,24 +88,24 @@
     typedef msm::back::state_machine<Playing_,msm::back::ShallowHistory<mpl::vector<end_pause> > > Playing;
 
     // replaces the old transition table
-    typedef BOOST_TYPEOF(build_stt
-        ((Stopped() + play()        == Playing()  / start_playback() ,
-          Stopped() + open_close()  == Open()     / open_drawer(),
-          Stopped() + stop()        == Stopped(),
+    typedef BOOST_TYPEOF(build_stt((
+          Playing()   == Stopped()  + play()        / start_playback() ,
+          Playing()   == Paused()   + end_pause()   / resume_playback(),
+          //  +------------------------------------------------------------------------------+
+          Empty()     == Open()     + open_close()  / close_drawer(),
           //  +------------------------------------------------------------------------------+
-          Open()    + open_close()  == Empty()    / close_drawer(),
+          Open()      == Empty()    + open_close()  / open_drawer(),
+          Open()      == Paused()   + open_close()  / stop_and_open(),
+          Open()      == Stopped()  + open_close()  / open_drawer(),
+          Open()      == Playing()  + open_close()  / stop_and_open(),
           //  +------------------------------------------------------------------------------+
-          Empty()   + open_close()  == Open()     / open_drawer(),
-          Empty()   + cd_detected() == Stopped()  [good_disk_format()&&(Event_<1>()==Int_<DISK_CD>())] 
-                                                  / (store_cd_info(),process_(play())),
-         //  +------------------------------------------------------------------------------+
-          Playing() + stop()        == Stopped()  / stop_playback(),
-          Playing() + pause()       == Paused()   / pause_playback(),
-          Playing() + open_close()  == Open()     / stop_and_open(),
+          Paused()    == Playing()  + pause()       / pause_playback(),
           //  +------------------------------------------------------------------------------+
-          Paused()  + end_pause()   == Playing()  / resume_playback(),
-          Paused()  + stop()        == Stopped()  / stop_playback(),
-          Paused()  + open_close()  == Open()     / stop_and_open()
+          Stopped()   == Playing()  + stop()        / stop_playback(),
+          Stopped()   == Paused()   + stop()        / stop_playback(),
+          Stopped()   == Empty()    + cd_detected() [good_disk_format()&&(Event_<1>()==Int_<DISK_CD>())] 
+                                                    / (store_cd_info(),process_(play())),
+          Stopped()   == Stopped()  + stop()                            
           //  +------------------------------------------------------------------------------+
                     ) ) ) transition_table;
 
@@ -126,7 +129,7 @@
     //
     // Testing utilities.
     //
-    static char const* const state_names[] = { "Stopped", "Open", "Empty", "Playing", "Paused" };
+    static char const* const state_names[] = { "Stopped", "Paused", "Open", "Empty", "Playing" };
     void pstate(player const& p)
     {
         std::cout << " -> " << state_names[p.current_state()[0]] << std::endl;
Added: sandbox/msm/libs/msm/doc/MsmSimpleFunctors.cpp
==============================================================================
--- (empty file)
+++ sandbox/msm/libs/msm/doc/MsmSimpleFunctors.cpp	2010-01-05 17:38:27 EST (Tue, 05 Jan 2010)
@@ -0,0 +1,249 @@
+// MsmSimple.cpp : Defines the entry point for the console application.
+//
+
+#include "stdafx.h"
+
+#include <boost/msm/back/state_machine.hpp>
+#include <boost/msm/front/state_machine_def.hpp>
+#include <boost/msm/front/functor_row.hpp>
+
+namespace msm = boost::msm;
+namespace mpl = boost::mpl;
+using namespace msm::front;
+
+#include <iostream>
+#ifdef WIN32
+#include "windows.h"
+#else
+#include <sys/time.h>
+#endif
+
+namespace test_fsm // Concrete FSM implementation
+{
+    // events
+    struct play {};
+    struct end_pause {};
+    struct stop {};
+    struct pause {};
+    struct open_close {};
+    struct cd_detected{};
+
+    // Concrete FSM implementation 
+    struct player_ : public msm::front::state_machine_def<player_>
+    {
+        // no need for exception handling or message queue
+        typedef int no_exception_thrown;
+        typedef int no_message_queue;
+
+        // The list of FSM states
+        struct Empty : public msm::front::state<> 
+        {
+            // optional entry/exit methods
+            template <class Event,class FSM>
+            void on_entry(Event const&,FSM& ) {/*std::cout << "entering: Empty" << std::endl;*/}
+            template <class Event,class FSM>
+            void on_exit(Event const&,FSM& ) {/*std::cout << "leaving: Empty" << std::endl;*/}
+        };
+        struct Open : public msm::front::state<> 
+        {	 
+            template <class Event,class FSM>
+            void on_entry(Event const&,FSM& ) {/*std::cout << "entering: Open" << std::endl;*/}
+            template <class Event,class FSM>
+            void on_exit(Event const&,FSM& ) {/*std::cout << "leaving: Open" << std::endl;*/}
+        };
+
+        struct Stopped : public msm::front::state<> 
+        {	 
+            // when stopped, the CD is loaded
+            template <class Event,class FSM>
+            void on_entry(Event const&,FSM& ) {/*std::cout << "entering: Stopped" << std::endl;*/}
+            template <class Event,class FSM>
+            void on_exit(Event const&,FSM& ) {/*std::cout << "leaving: Stopped" << std::endl;*/}
+        };
+
+        struct Playing : public msm::front::state<>
+        {
+            template <class Event,class FSM>
+            void on_entry(Event const&,FSM& ) {/*std::cout << "entering: Playing" << std::endl;*/}
+            template <class Event,class FSM>
+            void on_exit(Event const&,FSM& ) {/*std::cout << "leaving: Playing" << std::endl;*/}
+        };
+
+        // state not defining any entry or exit
+        struct Paused : public msm::front::state<>
+        {
+            template <class Event,class FSM>
+            void on_entry(Event const&,FSM& ) {/*std::cout << "entering: Paused" << std::endl;*/}
+            template <class Event,class FSM>
+            void on_exit(Event const&,FSM& ) {/*std::cout << "leaving: Paused" << std::endl;*/}
+        };
+
+        // the initial state of the player SM. Must be defined
+        typedef Empty initial_state;
+        // transition actions
+        struct start_playback
+        {
+            template <class FSM,class EVT,class SourceState,class TargetState>
+            void operator()(EVT const& ,FSM&,SourceState& ,TargetState& )
+            {
+            }
+        };
+        struct open_drawer
+        {
+            template <class FSM,class EVT,class SourceState,class TargetState>
+            void operator()(EVT const& ,FSM&,SourceState& ,TargetState& )
+            {
+            }
+        };
+        struct close_drawer
+        {
+            template <class FSM,class EVT,class SourceState,class TargetState>
+            void operator()(EVT const& ,FSM&,SourceState& ,TargetState& )
+            {
+            }
+        };
+        struct store_cd_info
+        {
+            template <class FSM,class EVT,class SourceState,class TargetState>
+            void operator()(EVT const&, FSM& fsm ,SourceState& ,TargetState& )
+            {
+            }
+        };
+        struct stop_playback 
+        {
+            template <class FSM,class EVT,class SourceState,class TargetState>
+            void operator()(EVT const& ,FSM&,SourceState& ,TargetState& )
+            {
+            }
+        };
+        struct pause_playback
+        {
+            template <class FSM,class EVT,class SourceState,class TargetState>
+            void operator()(EVT const& ,FSM&,SourceState& ,TargetState& )
+            {
+            }
+        };
+        struct resume_playback
+        {
+            template <class FSM,class EVT,class SourceState,class TargetState>
+            void operator()(EVT const& ,FSM&,SourceState& ,TargetState& )
+            {
+            }
+        };
+        struct stop_and_open
+        {
+            template <class FSM,class EVT,class SourceState,class TargetState>
+            void operator()(EVT const& ,FSM&,SourceState& ,TargetState& )
+            {
+            }
+        };
+        struct stopped_again
+        {
+            template <class FSM,class EVT,class SourceState,class TargetState>
+            void operator()(EVT const& ,FSM&,SourceState& ,TargetState& )
+            {
+            }
+        };
+        // guard conditions
+
+        // Transition table for player
+        struct transition_table : mpl::vector<
+            //    Start     Event         Next      Action				Guard
+            //    +---------+-------------+---------+---------------------+----------------------+
+              Row < Stopped , play        , Playing , start_playback                            >,
+              Row < Stopped , open_close  , Open    , open_drawer                               >,
+              Row < Stopped , stop        , Stopped , stopped_again                             >,
+            //    +---------+-------------+---------+---------------------+----------------------+
+              Row < Open    , open_close  , Empty   , close_drawer                              >,
+            //    +---------+-------------+---------+---------------------+----------------------+
+              Row < Empty   , open_close  , Open    , open_drawer                               >,
+              Row < Empty   , cd_detected , Stopped , store_cd_info                             >,
+            //    +---------+-------------+---------+---------------------+----------------------+
+              Row < Playing , stop        , Stopped , stop_playback                             >,
+              Row < Playing , pause       , Paused  , pause_playback                            >,
+              Row < Playing , open_close  , Open    , stop_and_open                             >,
+            //    +---------+-------------+---------+---------------------+----------------------+
+              Row < Paused  , end_pause   , Playing , resume_playback                           >,
+              Row < Paused  , stop        , Stopped , stop_playback                             >,
+              Row < Paused  , open_close  , Open    , stop_and_open                             >
+            //    +---------+-------------+---------+---------------------+----------------------+
+        > {};
+
+        // Replaces the default no-transition response.
+        template <class FSM,class Event>
+        void no_transition(Event const& e, FSM&,int state)
+        {
+            std::cout << "no transition from state " << state
+                << " on event " << typeid(e).name() << std::endl;
+        }
+    };
+    typedef msm::back::state_machine<player_> player;
+
+    //
+    // Testing utilities.
+    //
+    static char const* const state_names[] = { "Stopped", "Open", "Empty", "Playing", "Paused" };
+
+    void pstate(player const& p)
+    {
+        std::cout << " -> " << state_names[p.current_state()[0]] << std::endl;
+    }
+
+}
+
+#ifndef WIN32
+long mtime(struct timeval& tv1,struct timeval& tv2)
+{
+    return (tv2.tv_sec-tv1.tv_sec) *1000000 + ((tv2.tv_usec-tv1.tv_usec));
+}
+#endif
+
+
+int main()
+{
+    // for timing
+#ifdef WIN32
+    LARGE_INTEGER res;
+    ::QueryPerformanceFrequency(&res);
+    LARGE_INTEGER li,li2;
+#else
+    struct timeval tv1,tv2;
+    gettimeofday(&tv1,NULL);
+#endif
+    test_fsm::player p2;
+    p2.start();
+    // for timing
+#ifdef WIN32
+    ::QueryPerformanceCounter(&li);
+#else
+    gettimeofday(&tv1,NULL);
+#endif
+    for (int i=0;i<10000;++i)
+    {
+        p2.process_event(test_fsm::open_close());
+        p2.process_event(test_fsm::open_close()); 
+        p2.process_event(test_fsm::cd_detected());
+        p2.process_event(test_fsm::play());      
+        p2.process_event(test_fsm::pause()); 
+        // go back to Playing
+        p2.process_event(test_fsm::end_pause()); 
+        p2.process_event(test_fsm::pause()); 
+        p2.process_event(test_fsm::stop());  
+        // event leading to the same state
+        p2.process_event(test_fsm::stop());
+        p2.process_event(test_fsm::open_close());
+        p2.process_event(test_fsm::open_close());
+    }
+#ifdef WIN32
+    ::QueryPerformanceCounter(&li2);
+#else
+    gettimeofday(&tv2,NULL);
+#endif
+#ifdef WIN32
+    std::cout << "msm took in s:" << (double)(li2.QuadPart-li.QuadPart)/res.QuadPart <<"\n" <<std::endl;
+#else
+    std::cout << "msm took in us:" <<  mtime(tv1,tv2) <<"\n" <<std::endl;
+#endif
+    return 0;
+}
+
Modified: sandbox/msm/libs/msm/doc/OrthogonalDeferredEuml.cpp
==============================================================================
--- sandbox/msm/libs/msm/doc/OrthogonalDeferredEuml.cpp	(original)
+++ sandbox/msm/libs/msm/doc/OrthogonalDeferredEuml.cpp	2010-01-05 17:38:27 EST (Tue, 05 Jan 2010)
@@ -86,12 +86,12 @@
 
 
     // Playing has a transition table 
-    typedef BOOST_TYPEOF(build_stt(
+    typedef BOOST_TYPEOF(build_stt((
         //  +------------------------------------------------------------------------------+
-        (   Song1() + next_song()      == Song2()  / start_next_song(),
-            Song2() + previous_song()  == Song1()  / start_prev_song(),
-            Song2() + next_song()      == Song3()  / start_next_song(),
-            Song3() + previous_song()  == Song2()  / start_prev_song()
+        Song2()  == Song1() + next_song()       / start_next_song(),
+        Song1()  == Song2() + previous_song()   / start_prev_song(),
+        Song3()  == Song2() + next_song()       / start_next_song(),
+        Song2()  == Song3() + previous_song()   / start_prev_song()
         //  +------------------------------------------------------------------------------+
         ) ) ) playing_transition_table;
 
@@ -117,27 +117,24 @@
     typedef msm::back::state_machine<Playing_> Playing;
 
     // replaces the old transition table
-    typedef BOOST_TYPEOF(build_stt
-        ((Stopped()  + play()        == Playing()  / start_playback() ,
-          Stopped()  + open_close()  == Open()     / open_drawer(),
-          Stopped()  + stop()        == Stopped(),
+    typedef BOOST_TYPEOF(build_stt((
+          Playing()   == Stopped()  + play()        / start_playback() ,
+          Playing()   == Paused()   + end_pause()   / resume_playback(),
           //  +------------------------------------------------------------------------------+
-          Open()     + open_close()  == Empty()    / close_drawer(),
+          Empty()     == Open()     + open_close()  / close_drawer(),
           //  +------------------------------------------------------------------------------+
-          Empty()    + open_close()  == Open()     / open_drawer(),
-          Empty()    + cd_detected() == Stopped()  [good_disk_format()&&(Event_<1>()==Int_<DISK_CD>())] 
-                                                  / store_cd_info(),
-         //  +------------------------------------------------------------------------------+
-          Playing()  + stop()        == Stopped()  / stop_playback(),
-          Playing()  + pause()       == Paused()   / pause_playback(),
-          Playing()  + open_close()  == Open()     / stop_and_open(),
+          Open()      == Empty()    + open_close()  / open_drawer(),
+          Open()      == Paused()   + open_close()  / stop_and_open(),
+          Open()      == Stopped()  + open_close()  / open_drawer(),
+          Open()      == Playing()  + open_close()  / stop_and_open(),
           //  +------------------------------------------------------------------------------+
-          Paused()   + end_pause()   == Playing()  / resume_playback(),
-          Paused()   + stop()        == Stopped()  / stop_playback(),
-          Paused()   + open_close()  == Open()     / stop_and_open(),
+          Paused()    == Playing()  + pause()       / pause_playback(),
           //  +------------------------------------------------------------------------------+
-          AllOk()    + error_found() == ErrorMode()/ report_error(),
-          ErrorMode()+ end_error()   == AllOk()    / report_end_error()
+          Stopped()   == Playing()  + stop()        / stop_playback(),
+          Stopped()   == Paused()   + stop()        / stop_playback(),
+          Stopped()   == Empty()    + cd_detected() [good_disk_format()&&(Event_<1>()==Int_<DISK_CD>())] 
+                                                    / (store_cd_info(),process_(play())),
+          Stopped()   == Stopped()  + stop()                            
           //  +------------------------------------------------------------------------------+
                     ) ) ) transition_table;
 
@@ -161,7 +158,7 @@
     //
     // Testing utilities.
     //
-    static char const* const state_names[] = { "Stopped", "Open", "Empty", "Playing", "Paused","AllOk","ErrorMode" };
+    static char const* const state_names[] = { "Stopped", "Paused", "Open", "Empty", "Playing" };
     void pstate(player const& p)
     {
         // we have now several active states, which we show
Modified: sandbox/msm/libs/msm/doc/SimpleTimer.cpp
==============================================================================
--- sandbox/msm/libs/msm/doc/SimpleTimer.cpp	(original)
+++ sandbox/msm/libs/msm/doc/SimpleTimer.cpp	2010-01-05 17:38:27 EST (Tue, 05 Jan 2010)
@@ -73,27 +73,29 @@
     typedef BOOST_TYPEOF(build_state( Ringing_Entry(), NoAction(), attributes_ << int()/*M_RINGING_CPT*/ )) Ringing;
 
     // replaces the old transition table
-    typedef BOOST_TYPEOF(build_stt
+    typedef BOOST_TYPEOF(build_stt((
+        //  +------------------------------------------------------------------------------+
           // When we start the countdown, the countdown value is not hardcoded but contained in the start_timer event.
           // We copy this value into Started
-        ((Stopped() + start_timer()   == Started() / (Target_<m_counter>()= Event_<m_timer>()),
-          Started() + stop_timer()    == Stopped()  ,
-          Started() + tick()          == Started() 
-                                    // we here use the message queue to move to Started when the countdown is finished
-                                    // to do this we put start_ringing into the message queue
-                                    / if_then_( (Source_<m_counter>() -= Event_<m_tick>()) <= Int_<0>(),
-                                                   process_(start_ringing()) ),
+          Started()     == Stopped() + start_timer() / (Target_<m_counter>()= Event_<m_timer>())        ,
+          Stopped()     == Started() + stop_timer()  ,
+          // internal transition
+          Started() + tick()
+                    // we here use the message queue to move to Started when the countdown is finished
+                    // to do this we put start_ringing into the message queue
+                    / if_then_( (Source_<m_counter>() -= Event_<m_tick>()) <= Int_<0>(),
+                                 process_(start_ringing()) )                                    ,
           // when we start ringing, we give to the state its hard-coded ringing time.
-          Started() + start_ringing() == Ringing() / (Target_<m_ringing_cpt>() = Int_<RINGING_TIME>()),
+          Ringing()     == Started() + start_ringing() / (Target_<m_ringing_cpt>() = Int_<RINGING_TIME>()),
           // to change a bit, we now do not use the message queue but a transition conflict to solve the same problem.
-          // When tick is fired, we have a transition Ringing -> Ringing, as long as Counter > 0
-          Ringing() + tick()          == Ringing() [ Source_<m_ringing_cpt>() - Event_<m_tick>() > Int_<0>() ] 
-                                                   / (Source_<m_ringing_cpt>() -= Event_<m_tick>() ),
+          // When tick is fired, we have an internal transition Ringing -> Ringing, as long as Counter > 0
+          Ringing() + tick() [ Source_<m_ringing_cpt>() - Event_<m_tick>() > Int_<0>() ] 
+                             / (Source_<m_ringing_cpt>() -= Event_<m_tick>() )        ,
           // And we move to Stopped when the counter is 0
-          Ringing() + tick()          == Stopped() [ Source_<m_ringing_cpt>()-Event_<m_tick>() <= Int_<0>() ],
+          Stopped()     == Ringing() + tick() [ Source_<m_ringing_cpt>()-Event_<m_tick>() <= Int_<0>() ],
           // we let the user manually stop the ringing by pressing any button
-          Ringing() + stop_timer()    == Stopped(),
-          Ringing() + start_timer()   == Stopped()
+          Stopped()     == Ringing() + stop_timer()                                                     ,
+          Stopped()     == Ringing() + start_timer()
           //  +------------------------------------------------------------------------------+
                     ) ) ) transition_table;
 
Modified: sandbox/msm/libs/msm/doc/SimpleTutorialEuml.cpp
==============================================================================
--- sandbox/msm/libs/msm/doc/SimpleTutorialEuml.cpp	(original)
+++ sandbox/msm/libs/msm/doc/SimpleTutorialEuml.cpp	2010-01-05 17:38:27 EST (Tue, 05 Jan 2010)
@@ -53,34 +53,37 @@
     typedef BOOST_TYPEOF(build_state( )) Paused;
 
     // replaces the old transition table
-    typedef BOOST_TYPEOF(build_stt
-        ((Stopped() + play()        == Playing()  / start_playback() ,
-          Stopped() + open_close()  == Open()     / open_drawer(),
-          Stopped() + stop()        == Stopped(),
+    typedef BOOST_TYPEOF(build_stt((
+          Playing()   == Stopped()  + play()        / start_playback() ,
+          Playing()   == Paused()   + end_pause()   / resume_playback(),
           //  +------------------------------------------------------------------------------+
-          Open()    + open_close()  == Empty()    / close_drawer(),
+          Empty()     == Open()     + open_close()  / close_drawer(),
           //  +------------------------------------------------------------------------------+
-          Empty()   + open_close()  == Open()     / open_drawer(),
-          Empty()   + cd_detected() == Stopped()  [good_disk_format()&&(Event_<1>()==Int_<DISK_CD>())] 
-                                                  / (store_cd_info(),process_(play())),
-         //  +------------------------------------------------------------------------------+
-          Playing() + stop()        == Stopped()  / stop_playback(),
-          Playing() + pause()       == Paused()   / pause_playback(),
-          Playing() + open_close()  == Open()     / stop_and_open(),
+          Open()      == Empty()    + open_close()  / open_drawer(),
+          Open()      == Paused()   + open_close()  / stop_and_open(),
+          Open()      == Stopped()  + open_close()  / open_drawer(),
+          Open()      == Playing()  + open_close()  / stop_and_open(),
           //  +------------------------------------------------------------------------------+
-          Paused()  + end_pause()   == Playing()  / resume_playback(),
-          Paused()  + stop()        == Stopped()  / stop_playback(),
-          Paused()  + open_close()  == Open()     / stop_and_open()
+          Paused()    == Playing()  + pause()       / pause_playback(),
+          //  +------------------------------------------------------------------------------+
+          Stopped()   == Playing()  + stop()        / stop_playback(),
+          Stopped()   == Paused()   + stop()        / stop_playback(),
+          Stopped()   == Empty()    + cd_detected() [good_disk_format()&&(Event_<1>()==Int_<DISK_CD>())] 
+                                                    / (store_cd_info(),process_(play())),
+          Stopped()   == Stopped()  + stop()                            
           //  +------------------------------------------------------------------------------+
                     ) ) ) transition_table;
 
     // create a state machine "on the fly"
+    // VC9 sometimes cannot compile the typedef with build_sm
+#ifndef BOOST_MSVC
+    // create a state machine "on the fly" for player
     typedef BOOST_TYPEOF(build_sm(  transition_table(), //STT
                                     init_ << Empty(), // Init State
                                     NoAction(), // Entry
                                     NoAction(), // Exit
                                     attributes_ << no_attributes_, // Attributes
-                                    configure_<< no_configure_, // Flags, Deferred events, configuration
+                                    configure_ << no_configure_, 
                                     Log_No_Transition() // no_transition handler
                                     )) player_;
     // or simply, if no no_transition handler needed:
@@ -88,14 +91,26 @@
     //                                Empty() // Init State
     //                                )) player_;
 
-
+#else
+    // but this definition is ok
+    struct player_ : public BOOST_TYPEOF(build_sm(  transition_table(), //STT
+                                                    init_ << Empty(), // Init State
+                                                    NoAction(), // Entry
+                                                    NoAction(), // Exit
+                                                    attributes_ << no_attributes_, // Attributes
+                                                    configure_ << no_configure_, // configuration
+                                                    Log_No_Transition() // no_transition handler
+                                                    ))
+    {
+    };
+#endif
     // choice of back-end
     typedef msm::back::state_machine<player_> player;
 
     //
     // Testing utilities.
     //
-    static char const* const state_names[] = { "Stopped", "Open", "Empty", "Playing", "Paused" };
+    static char const* const state_names[] = { "Stopped", "Paused", "Open", "Empty", "Playing" };
     void pstate(player const& p)
     {
         std::cout << " -> " << state_names[p.current_state()[0]] << std::endl;
Added: sandbox/msm/libs/msm/doc/SimpleTutorialEuml2.cpp
==============================================================================
--- (empty file)
+++ sandbox/msm/libs/msm/doc/SimpleTutorialEuml2.cpp	2010-01-05 17:38:27 EST (Tue, 05 Jan 2010)
@@ -0,0 +1,156 @@
+#include <vector>
+#include <iostream>
+
+#include <boost/msm/back/state_machine.hpp>
+#include <boost/msm/front/euml/euml.hpp>
+
+using namespace std;
+using namespace boost::msm::front::euml;
+namespace msm = boost::msm;
+
+// entry/exit/action/guard logging functors
+#include "logging_functors.h"
+
+namespace  // Concrete FSM implementation
+{
+    // events
+    // note that unlike the SimpleTutorial, events must derive from euml_event.
+    struct play : euml_event<play>{}; 
+    struct end_pause : euml_event<end_pause>{};
+    struct stop : euml_event<stop>{};
+    struct pause : euml_event<pause>{};
+    struct open_close : euml_event<open_close>{};
+
+    // A "complicated" event type that carries some data.
+    // first define the attributes
+    typedef BOOST_TYPEOF(build_attributes(attributes_ << std::string() << DiskTypeEnum() )) cd_detected_def;
+    // pass the attributes to the event
+    struct cd_detected : euml_event<cd_detected>,cd_detected_def
+    {
+        cd_detected(){}
+        cd_detected(std::string name, DiskTypeEnum diskType)
+        {
+            // 1st attribute, a string
+            get_attribute<0>()=name;
+            // 2nd attribute, a DiskTypeEnum
+            get_attribute<1>()=diskType;
+        }
+    };
+
+    // Concrete FSM implementation 
+
+    // The list of FSM states
+
+    typedef BOOST_TYPEOF(build_state(Empty_Entry(),Empty_Exit())) Empty;
+
+    typedef BOOST_TYPEOF(build_state( Open_Entry(),Open_Exit() )) Open;
+
+    typedef BOOST_TYPEOF(build_state( Stopped_Entry(),Stopped_Exit() )) Stopped;
+
+    typedef BOOST_TYPEOF(build_state( (Playing_Entry()),(Playing_Exit()) )) Playing;
+    
+    // state not needing any entry or exit
+    typedef BOOST_TYPEOF(build_state( )) Paused;
+
+    // replaces the old transition table
+    typedef BOOST_TYPEOF(build_stt((
+          Stopped() + play()        / start_playback()  == Playing()                        ,
+          Stopped() + open_close()  / open_drawer()     == Open()                           ,
+          Stopped() + stop()                            == Stopped(),
+          //  +------------------------------------------------------------------------------+
+          Open()    + open_close()  / close_drawer()    == Empty()                          ,
+          //  +------------------------------------------------------------------------------+
+          Empty()   + open_close()  / open_drawer()     == Open()                           ,
+          Empty()   + cd_detected()
+            [good_disk_format()&&(Event_<1>()==Int_<DISK_CD>())]
+            / (store_cd_info(),process_(play()))        == Stopped()                        ,
+         //  +------------------------------------------------------------------------------+
+          Playing() + stop()        / stop_playback()   == Stopped()                        ,
+          Playing() + pause()       / pause_playback()  == Paused()                         ,
+          Playing() + open_close()  / stop_and_open()   == Open()                           ,
+          //  +------------------------------------------------------------------------------+
+          Paused()  + end_pause()   / resume_playback() == Playing()                        ,
+          Paused()  + stop()        / stop_playback()   == Stopped()                        ,
+          Paused()  + open_close()  / stop_and_open()   == Open()     
+          //  +------------------------------------------------------------------------------+
+                    ) ) ) transition_table;
+
+    // create a state machine "on the fly"
+    // VC9 sometimes cannot compile the typedef with build_sm
+#ifndef BOOST_MSVC
+    // create a state machine "on the fly" for player
+    typedef BOOST_TYPEOF(build_sm(  transition_table(), //STT
+                                    init_ << Empty(), // Init State
+                                    NoAction(), // Entry
+                                    NoAction(), // Exit
+                                    attributes_ << no_attributes_, // Attributes
+                                    configure_ << no_configure_, 
+                                    Log_No_Transition() // no_transition handler
+                                    )) player_;
+    // or simply, if no no_transition handler needed:
+    //typedef BOOST_TYPEOF(build_sm(  transition_table(), //STT
+    //                                Empty() // Init State
+    //                                )) player_;
+
+#else
+    // but this definition is ok
+    struct player_ : public BOOST_TYPEOF(build_sm(  transition_table(), //STT
+                                                    init_ << Empty(), // Init State
+                                                    NoAction(), // Entry
+                                                    NoAction(), // Exit
+                                                    attributes_ << no_attributes_, // Attributes
+                                                    configure_ << no_configure_, // configuration
+                                                    Log_No_Transition() // no_transition handler
+                                                    ))
+    {
+    };
+#endif
+
+    // choice of back-end
+    typedef msm::back::state_machine<player_> player;
+
+    //
+    // Testing utilities.
+    //
+    static char const* const state_names[] = { "Stopped", "Open", "Empty", "Playing", "Paused" };
+    void pstate(player const& p)
+    {
+        std::cout << " -> " << state_names[p.current_state()[0]] << std::endl;
+    }
+
+    void test()
+    {        
+		player p;
+        // needed to start the highest-level SM. This will call on_entry and mark the start of the SM
+        p.start(); 
+        // go to Open, call on_exit on Empty, then action, then on_entry on Open
+        p.process_event(open_close()); pstate(p);
+        p.process_event(open_close()); pstate(p);
+        // will be rejected, wrong disk type
+        p.process_event(
+            cd_detected("louie, louie",DISK_DVD)); pstate(p);
+        p.process_event(
+            cd_detected("louie, louie",DISK_CD)); pstate(p);
+        // no need to call play() as the previous event does it in its action method
+		//p.process_event(play());
+
+        // at this point, Play is active      
+        p.process_event(pause()); pstate(p);
+        // go back to Playing
+        p.process_event(end_pause());  pstate(p);
+        p.process_event(pause()); pstate(p);
+        p.process_event(stop());  pstate(p);
+        // event leading to the same state
+        // no action method called as none is defined in the transition table
+        p.process_event(stop());  pstate(p);
+        // test call to no_transition
+        p.process_event(pause()); pstate(p);
+    }
+}
+
+int main()
+{
+    test();
+    return 0;
+}
+
Modified: sandbox/msm/libs/msm/doc/iPodSearchEuml.cpp
==============================================================================
--- sandbox/msm/libs/msm/doc/iPodSearchEuml.cpp	(original)
+++ sandbox/msm/libs/msm/doc/iPodSearchEuml.cpp	2010-01-05 17:38:27 EST (Tue, 05 Jan 2010)
@@ -86,11 +86,11 @@
 
 
     // replaces the old transition table
-    typedef BOOST_TYPEOF(build_stt
-        ((Foreach()     + OneSong()     == StringFind() ,
-          StringFind()  + Found()       == Insert()  ,
-          StringFind()  + NotFound()    == Foreach() ,
-          Insert()      + Done()        == Foreach()
+    typedef BOOST_TYPEOF(build_stt((
+          StringFind()  == Foreach()     + OneSong() ,
+          Insert()      == StringFind()  + Found()  ,
+          Foreach()     == StringFind()  + NotFound() ,
+          Foreach()     ==  Insert()     + Done()
           //  +------------------------------------------------------------------------------+
                     ) ) ) transition_table;
     struct Log_No_Transition : euml_action<Log_No_Transition>
Modified: sandbox/msm/libs/msm/doc/index-Dateien/filelist.xml
==============================================================================
--- sandbox/msm/libs/msm/doc/index-Dateien/filelist.xml	(original)
+++ sandbox/msm/libs/msm/doc/index-Dateien/filelist.xml	2010-01-05 17:38:27 EST (Tue, 05 Jan 2010)
@@ -5,30 +5,30 @@
  <o:File HRef="themedata.thmx"/>
  <o:File HRef="colorschememapping.xml"/>
  <o:File HRef="image001.jpg"/>
- <o:File HRef="image027.jpg"/>
+ <o:File HRef="image002.jpg"/>
  <o:File HRef="image003.jpg"/>
- <o:File HRef="image028.jpg"/>
+ <o:File HRef="image004.jpg"/>
  <o:File HRef="image005.jpg"/>
- <o:File HRef="image029.jpg"/>
+ <o:File HRef="image006.jpg"/>
  <o:File HRef="image007.jpg"/>
- <o:File HRef="image030.jpg"/>
+ <o:File HRef="image008.jpg"/>
  <o:File HRef="image009.jpg"/>
- <o:File HRef="image031.jpg"/>
+ <o:File HRef="image010.jpg"/>
  <o:File HRef="image011.jpg"/>
- <o:File HRef="image032.jpg"/>
+ <o:File HRef="image012.jpg"/>
  <o:File HRef="image013.jpg"/>
- <o:File HRef="image033.jpg"/>
+ <o:File HRef="image014.jpg"/>
  <o:File HRef="image015.jpg"/>
- <o:File HRef="image034.jpg"/>
+ <o:File HRef="image016.jpg"/>
  <o:File HRef="image017.jpg"/>
- <o:File HRef="image035.jpg"/>
+ <o:File HRef="image018.jpg"/>
  <o:File HRef="image019.jpg"/>
- <o:File HRef="image036.jpg"/>
+ <o:File HRef="image020.jpg"/>
  <o:File HRef="image021.jpg"/>
- <o:File HRef="image037.jpg"/>
+ <o:File HRef="image022.jpg"/>
  <o:File HRef="image023.jpg"/>
- <o:File HRef="image038.jpg"/>
+ <o:File HRef="image024.jpg"/>
  <o:File HRef="image025.jpg"/>
- <o:File HRef="image039.jpg"/>
+ <o:File HRef="image026.jpg"/>
  <o:File HRef="filelist.xml"/>
 </xml>
\ No newline at end of file
Modified: sandbox/msm/libs/msm/doc/index-Dateien/image016.jpg
==============================================================================
Binary files. No diff available.
Modified: sandbox/msm/libs/msm/doc/index-Dateien/props0033.xml
==============================================================================
--- sandbox/msm/libs/msm/doc/index-Dateien/props0033.xml	(original)
+++ sandbox/msm/libs/msm/doc/index-Dateien/props0033.xml	2010-01-05 17:38:27 EST (Tue, 05 Jan 2010)
@@ -1,2 +1,2 @@
 <?xml version="1.0" encoding="UTF-8" standalone="no"?>
-<ds:datastoreItem ds:itemID="{11CDBC9B-EE54-4B3C-A547-CC5B1D11CC22}" xmlns:ds="http://schemas.openxmlformats.org/officeDocument/2006/customXml"><ds:schemaRefs><ds:schemaRef ds:uri="http://schemas.openxmlformats.org/officeDocument/2006/bibliography"/></ds:schemaRefs></ds:datastoreItem>
\ No newline at end of file
+<ds:datastoreItem ds:itemID="{70D873F8-AE57-4CD9-9929-7DE5813E59B7}" xmlns:ds="http://schemas.openxmlformats.org/officeDocument/2006/customXml"><ds:schemaRefs><ds:schemaRef ds:uri="http://schemas.openxmlformats.org/officeDocument/2006/bibliography"/></ds:schemaRefs></ds:datastoreItem>
\ No newline at end of file
Modified: sandbox/msm/libs/msm/doc/index.htm
==============================================================================
--- sandbox/msm/libs/msm/doc/index.htm	(original)
+++ sandbox/msm/libs/msm/doc/index.htm	2010-01-05 17:38:27 EST (Tue, 05 Jan 2010)
@@ -23,15 +23,15 @@
   <o:Author>Christophe</o:Author>
   <o:Template>Normal</o:Template>
   <o:LastAuthor>Christophe</o:LastAuthor>
-  <o:Revision>296</o:Revision>
+  <o:Revision>297</o:Revision>
   <o:Created>2009-09-03T20:17:00Z</o:Created>
-  <o:LastSaved>2010-01-04T21:14:00Z</o:LastSaved>
-  <o:Pages>40</o:Pages>
-  <o:Words>19472</o:Words>
-  <o:Characters>122677</o:Characters>
-  <o:Lines>1022</o:Lines>
-  <o:Paragraphs>283</o:Paragraphs>
-  <o:CharactersWithSpaces>141866</o:CharactersWithSpaces>
+  <o:LastSaved>2010-01-05T22:37:00Z</o:LastSaved>
+  <o:Pages>42</o:Pages>
+  <o:Words>19495</o:Words>
+  <o:Characters>122823</o:Characters>
+  <o:Lines>1023</o:Lines>
+  <o:Paragraphs>284</o:Paragraphs>
+  <o:CharactersWithSpaces>142034</o:CharactersWithSpaces>
   <o:Version>12.00</o:Version>
  </o:DocumentProperties>
 </xml><![endif]-->
@@ -41,6 +41,7 @@
 <link rel=colorSchemeMapping href="index-Dateien/colorschememapping.xml">
 <!--[if gte mso 9]><xml>
  <w:WordDocument>
+  <w:Zoom>130</w:Zoom>
   <w:TrackMoves>false</w:TrackMoves>
   <w:TrackFormatting/>
   <w:HyphenationZone>21</w:HyphenationZone>
@@ -394,8 +395,9 @@
         panose-1:2 11 6 4 2 2 2 2 2 4;
         mso-font-charset:0;
         mso-generic-font-family:swiss;
+	mso-font-format:other;
         mso-font-pitch:variable;
-	mso-font-signature:-536859905 -1073711037 9 0 511 0;}
+	mso-font-signature:3 0 0 0 1 0;}
 @font-face
         {font-family:Courier;
         panose-1:2 7 4 9 2 2 5 2 4 4;
@@ -448,65 +450,73 @@
         panose-1:2 2 6 9 4 2 5 8 3 4;
         mso-font-alt:"\FF2D\FF33 \660E\671D";
         mso-font-charset:128;
-	mso-generic-font-family:modern;
+	mso-generic-font-family:roman;
+	mso-font-format:other;
         mso-font-pitch:fixed;
-	mso-font-signature:-536870145 1791491579 18 0 131231 0;}
+	mso-font-signature:1 134676480 16 0 131072 0;}
 @font-face
         {font-family:Batang;
         panose-1:2 3 6 0 0 1 1 1 1 1;
         mso-font-alt:\BC14\D0D5;
         mso-font-charset:129;
-	mso-generic-font-family:roman;
-	mso-font-pitch:variable;
-	mso-font-signature:-1342176593 1775729915 48 0 524447 0;}
+	mso-generic-font-family:auto;
+	mso-font-format:other;
+	mso-font-pitch:fixed;
+	mso-font-signature:1 151388160 16 0 524288 0;}
 @font-face
         {font-family:SimSun;
         panose-1:2 1 6 0 3 1 1 1 1 1;
         mso-font-alt:\5B8B\4F53;
         mso-font-charset:134;
         mso-generic-font-family:auto;
+	mso-font-format:other;
         mso-font-pitch:variable;
-	mso-font-signature:3 680460288 22 0 262145 0;}
+	mso-font-signature:1 135135232 16 0 262144 0;}
 @font-face
         {font-family:PMingLiU;
         panose-1:2 2 5 0 0 0 0 0 0 0;
         mso-font-alt:\65B0\7D30\660E\9AD4;
         mso-font-charset:136;
-	mso-generic-font-family:roman;
+	mso-generic-font-family:auto;
+	mso-font-format:other;
         mso-font-pitch:variable;
-	mso-font-signature:-1610611969 684719354 22 0 1048577 0;}
+	mso-font-signature:1 134742016 16 0 1048576 0;}
 @font-face
         {font-family:"MS Gothic";
         panose-1:2 11 6 9 7 2 5 8 2 4;
         mso-font-alt:"\FF2D\FF33 \30B4\30B7\30C3\30AF";
         mso-font-charset:128;
         mso-generic-font-family:modern;
+	mso-font-format:other;
         mso-font-pitch:fixed;
-	mso-font-signature:-536870145 1791491579 18 0 131231 0;}
+	mso-font-signature:1 134676480 16 0 131072 0;}
 @font-face
         {font-family:Dotum;
         panose-1:2 11 6 0 0 1 1 1 1 1;
         mso-font-alt:\B3CB\C6C0;
         mso-font-charset:129;
-	mso-generic-font-family:swiss;
-	mso-font-pitch:variable;
-	mso-font-signature:-1342176593 1775729915 48 0 524447 0;}
+	mso-generic-font-family:modern;
+	mso-font-format:other;
+	mso-font-pitch:fixed;
+	mso-font-signature:1 151388160 16 0 524288 0;}
 @font-face
         {font-family:SimHei;
         panose-1:2 1 6 9 6 1 1 1 1 1;
         mso-font-alt:\9ED1\4F53;
         mso-font-charset:134;
         mso-generic-font-family:modern;
+	mso-font-format:other;
         mso-font-pitch:fixed;
-	mso-font-signature:-2147482945 953122042 22 0 262145 0;}
+	mso-font-signature:1 135135232 16 0 262144 0;}
 @font-face
         {font-family:MingLiU;
         panose-1:2 2 5 9 0 0 0 0 0 0;
         mso-font-alt:\7D30\660E\9AD4;
         mso-font-charset:136;
         mso-generic-font-family:modern;
+	mso-font-format:other;
         mso-font-pitch:fixed;
-	mso-font-signature:-1610611969 684719354 22 0 1048577 0;}
+	mso-font-signature:1 134742016 16 0 1048576 0;}
 @font-face
         {font-family:Mincho;
         panose-1:2 2 6 9 4 3 5 8 3 5;
@@ -521,37 +531,42 @@
         panose-1:2 11 6 0 0 1 1 1 1 1;
         mso-font-alt:\AD74\B9BC;
         mso-font-charset:129;
-	mso-generic-font-family:swiss;
-	mso-font-pitch:variable;
-	mso-font-signature:-1342176593 1775729915 48 0 524447 0;}
+	mso-generic-font-family:roman;
+	mso-font-format:other;
+	mso-font-pitch:fixed;
+	mso-font-signature:1 151388160 16 0 524288 0;}
 @font-face
         {font-family:Century;
         panose-1:2 4 6 4 5 5 5 2 3 4;
         mso-font-charset:0;
         mso-generic-font-family:roman;
+	mso-font-format:other;
         mso-font-pitch:variable;
-	mso-font-signature:647 0 0 0 159 0;}
+	mso-font-signature:3 0 0 0 1 0;}
 @font-face
         {font-family:"Angsana New";
         panose-1:2 2 6 3 5 4 5 2 3 4;
-	mso-font-charset:0;
+	mso-font-charset:222;
         mso-generic-font-family:roman;
+	mso-font-format:other;
         mso-font-pitch:variable;
-	mso-font-signature:-2130706429 0 0 0 65537 0;}
+	mso-font-signature:16777217 0 0 0 65536 0;}
 @font-face
         {font-family:"Cordia New";
         panose-1:2 11 3 4 2 2 2 2 2 4;
-	mso-font-charset:0;
-	mso-generic-font-family:swiss;
+	mso-font-charset:222;
+	mso-generic-font-family:roman;
+	mso-font-format:other;
         mso-font-pitch:variable;
-	mso-font-signature:-2130706429 0 0 0 65537 0;}
+	mso-font-signature:16777217 0 0 0 65536 0;}
 @font-face
         {font-family:Mangal;
         panose-1:2 4 5 3 5 2 3 3 2 2;
-	mso-font-charset:0;
+	mso-font-charset:1;
         mso-generic-font-family:roman;
+	mso-font-format:other;
         mso-font-pitch:variable;
-	mso-font-signature:32771 0 0 0 1 0;}
+	mso-font-signature:8192 0 0 0 0 0;}
 @font-face
         {font-family:Latha;
         panose-1:2 0 4 0 0 0 0 0 0 0;
@@ -565,29 +580,33 @@
         panose-1:1 10 5 2 5 3 6 3 3 3;
         mso-font-charset:0;
         mso-generic-font-family:roman;
+	mso-font-format:other;
         mso-font-pitch:variable;
-	mso-font-signature:67110535 0 0 0 159 0;}
+	mso-font-signature:12583555 0 0 0 13 0;}
 @font-face
         {font-family:Vrinda;
         panose-1:1 1 6 0 1 1 1 1 1 1;
-	mso-font-charset:0;
-	mso-generic-font-family:auto;
+	mso-font-charset:1;
+	mso-generic-font-family:roman;
+	mso-font-format:other;
         mso-font-pitch:variable;
-	mso-font-signature:65539 0 0 0 1 0;}
+	mso-font-signature:0 0 0 0 0 0;}
 @font-face
         {font-family:Raavi;
         panose-1:2 0 5 0 0 0 0 0 0 0;
-	mso-font-charset:0;
-	mso-generic-font-family:auto;
+	mso-font-charset:1;
+	mso-generic-font-family:roman;
+	mso-font-format:other;
         mso-font-pitch:variable;
-	mso-font-signature:131075 0 0 0 1 0;}
+	mso-font-signature:0 0 0 0 0 0;}
 @font-face
         {font-family:Shruti;
         panose-1:2 11 6 4 2 2 2 2 2 4;
-	mso-font-charset:0;
-	mso-generic-font-family:swiss;
+	mso-font-charset:1;
+	mso-generic-font-family:roman;
+	mso-font-format:other;
         mso-font-pitch:variable;
-	mso-font-signature:262147 0 0 0 1 0;}
+	mso-font-signature:0 0 0 0 0 0;}
 @font-face
         {font-family:Sendnya;
         panose-1:0 0 4 0 0 0 0 0 0 0;
@@ -599,38 +618,43 @@
 @font-face
         {font-family:Gautami;
         panose-1:2 0 5 0 0 0 0 0 0 0;
-	mso-font-charset:0;
-	mso-generic-font-family:auto;
+	mso-font-charset:1;
+	mso-generic-font-family:roman;
+	mso-font-format:other;
         mso-font-pitch:variable;
-	mso-font-signature:-2145386493 0 0 0 1 0;}
+	mso-font-signature:0 0 0 0 0 0;}
 @font-face
         {font-family:Tunga;
         panose-1:0 0 4 0 0 0 0 0 0 0;
-	mso-font-charset:0;
-	mso-generic-font-family:auto;
+	mso-font-charset:1;
+	mso-generic-font-family:roman;
+	mso-font-format:other;
         mso-font-pitch:variable;
-	mso-font-signature:4194307 0 0 0 1 0;}
+	mso-font-signature:0 0 0 0 0 0;}
 @font-face
         {font-family:"Estrangelo Edessa";
         panose-1:3 8 6 0 0 0 0 0 0 0;
-	mso-font-charset:0;
-	mso-generic-font-family:script;
+	mso-font-charset:1;
+	mso-generic-font-family:roman;
+	mso-font-format:other;
         mso-font-pitch:variable;
-	mso-font-signature:-2147475389 0 128 0 1 0;}
+	mso-font-signature:0 0 0 0 0 0;}
 @font-face
         {font-family:"Cambria Math";
         panose-1:2 4 5 3 5 4 6 3 2 4;
-	mso-font-charset:0;
+	mso-font-charset:1;
         mso-generic-font-family:roman;
+	mso-font-format:other;
         mso-font-pitch:variable;
-	mso-font-signature:-1610611985 1107304683 0 0 159 0;}
+	mso-font-signature:0 0 0 0 0 0;}
 @font-face
         {font-family:"Arial Unicode MS";
         panose-1:2 11 6 4 2 2 2 2 2 4;
-	mso-font-charset:128;
-	mso-generic-font-family:swiss;
+	mso-font-charset:0;
+	mso-generic-font-family:roman;
+	mso-font-format:other;
         mso-font-pitch:variable;
-	mso-font-signature:-134238209 -371195905 63 0 4129279 0;}
+	mso-font-signature:3 0 0 0 1 0;}
 @font-face
         {font-family:Cambria;
         panose-1:2 4 5 3 5 4 6 3 2 4;
@@ -2563,6 +2587,38 @@
         mso-level-number-position:left;
         text-indent:-18.0pt;
         font-family:Symbol;}
+@list l12:level2
+	{mso-level-tab-stop:72.0pt;
+	mso-level-number-position:left;
+	text-indent:-18.0pt;}
+@list l12:level3
+	{mso-level-tab-stop:108.0pt;
+	mso-level-number-position:left;
+	text-indent:-18.0pt;}
+@list l12:level4
+	{mso-level-tab-stop:144.0pt;
+	mso-level-number-position:left;
+	text-indent:-18.0pt;}
+@list l12:level5
+	{mso-level-tab-stop:180.0pt;
+	mso-level-number-position:left;
+	text-indent:-18.0pt;}
+@list l12:level6
+	{mso-level-tab-stop:216.0pt;
+	mso-level-number-position:left;
+	text-indent:-18.0pt;}
+@list l12:level7
+	{mso-level-tab-stop:252.0pt;
+	mso-level-number-position:left;
+	text-indent:-18.0pt;}
+@list l12:level8
+	{mso-level-tab-stop:288.0pt;
+	mso-level-number-position:left;
+	text-indent:-18.0pt;}
+@list l12:level9
+	{mso-level-tab-stop:324.0pt;
+	mso-level-number-position:left;
+	text-indent:-18.0pt;}
 @list l13
         {mso-list-id:558129470;
         mso-list-template-ids:-1638399218;}
@@ -4993,7 +5049,7 @@
 <meta name=CHANGEDBY content=xtoff>
 <meta name=CHANGEDBY content=xtoff>
 <!--[if gte mso 9]><xml>
- <o:shapedefaults v:ext="edit" spidmax="47106"/>
+ <o:shapedefaults v:ext="edit" spidmax="48130"/>
 </xml><![endif]--><!--[if gte mso 9]><xml>
  <o:shapelayout v:ext="edit">
   <o:idmap v:ext="edit" data="1"/>
@@ -5517,17 +5573,16 @@
 table or state definition, without the need to define extra functions.<o:p></o:p></span></p>
 
 <p style='margin-bottom:12.0pt'><span lang=EN-US style='mso-ansi-language:EN-US'>Msm
-was designed with the idea of helping developers build software the
-Model-Driven-Development way. State machines are a very useful tool for MDD, as
-they allow a graphical representation of a dynamic view from a modeled system.
-Msm aims to provide a Model-Driven approach with the reversible and repeatable
-properties. But the help provided by state machines usually stops with the
-structure definition (states, transitions, etc.) and there is little help for
-actually writing the actions, guards and stat actions. Msm now brings MDD
-further by providing a new functional language for the definition of actions
-and guards directly in the transition table. Functional languages have interesting
-properties, one of which is relevant to MDD, the ability to be easily
-graphically represented.<o:p></o:p></span></p>
+was designed with the idea of helping developers build software the Model-Driven-Development
+way. State machines are a very useful tool for MDD, as they allow a graphical
+representation of a dynamic view from a modeled system. Msm aims to provide a
+Model-Driven approach with the reversible and repeatable properties. But the help
+provided by state machines usually stops with the structure definition (states,
+transitions, etc.) and there is little help for actually writing the actions,
+guards and stat actions. Msm now brings MDD further by providing a new
+functional language for the definition of actions and guards directly in the
+transition table. Functional languages have interesting properties, one of
+which is relevant to MDD, the ability to be easily graphically represented.<o:p></o:p></span></p>
 
 <p style='margin-bottom:12.0pt'><span lang=EN-US style='mso-ansi-language:EN-US'>In
 a UML diagram, a transition is represented as:<o:p></o:p></span></p>
@@ -5557,7 +5612,7 @@
  mso-wrap-style:square'>
  <v:imagedata src="index-Dateien/image001.jpg" o:title="Transition"/>
 </v:shape><![endif]--><![if !vml]><img border=0 width=202 height=96
-src="index-Dateien/image027.jpg" alt=Transition.jpg v:shapes="Grafik_x0020_16"><![endif]></span><span
+src="index-Dateien/image002.jpg" alt=Transition.jpg v:shapes="Grafik_x0020_16"><![endif]></span><span
 lang=EN-US style='mso-ansi-language:EN-US'><o:p></o:p></span></p>
 
 <p style='margin-bottom:12.0pt'><span lang=EN-US style='mso-ansi-language:EN-US'>Where
@@ -5569,9 +5624,9 @@
 (Action1(),Action2())<o:p></o:p></span></p>
 
 <p style='margin-bottom:12.0pt'><span lang=EN-US style='mso-ansi-language:EN-US'>UML
-designers are also used to write pseudo-code in the action methods, like ++counter.
-This is now also possible, along with most of the STL algorithms or container
-methods.<o:p></o:p></span></p>
+designers are also used to write pseudo-code in the action methods, like
+++counter. This is now also possible, along with most of the STL algorithms or
+container methods.<o:p></o:p></span></p>
 
 <p style='margin-bottom:12.0pt'><span lang=EN-US style='mso-ansi-language:EN-US'>To
 achieve this, eUML also acts like a compile-time boost::phoenix adapted to the
@@ -5825,9 +5880,9 @@
 
 <p style='margin-bottom:12.0pt'><span lang=EN-US style='mso-ansi-language:EN-US'><o:p> </o:p></span></p>
 
-<p><span lang=EN-US style='mso-ansi-language:EN-US'>If you are looking for an efficient
-and straightforward UML-based finite state machine framework, we sincerely hope
-you will enjoy this work!<o:p></o:p></span></p>
+<p><span lang=EN-US style='mso-ansi-language:EN-US'>If you are looking for an
+efficient and straightforward UML-based finite state machine framework, we
+sincerely hope you will enjoy this work!<o:p></o:p></span></p>
 
 <h2><a name="_Founding_example"></a><span lang=EN-US style='mso-fareast-font-family:
 "Times New Roman";mso-ansi-language:EN-US'>Founding example<o:p></o:p></span></h2>
@@ -6389,8 +6444,8 @@
 mso-ansi-language:EN-US'>Rows<o:p></o:p></span></h2>
 
 <p><span lang=EN-US style='mso-ansi-language:EN-US'>Attentive readers will
-notice that the above syntax is actually not exactly the one described in the
-book which provides no guard and forces the definition of an action method.<o:p></o:p></span></p>
+notice that the above syntax is actually not exactly the one described in the book
+which provides no guard and forces the definition of an action method.<o:p></o:p></span></p>
 
 <p><span lang=EN-US style='mso-ansi-language:EN-US'>Msm therefore defines
 several types of rows, for all possible combinations of transitions with or
@@ -6560,23 +6615,22 @@
 
 <p><span lang=EN-US style='mso-ansi-language:EN-US'>SimpleTutorial.cpp<o:p></o:p></span></p>
 
-<p><span lang=EN-US style='mso-ansi-language:EN-US'>The previously described
-transition table is an easily-generated view of the following UML State Machine
-Diagram:<o:p></o:p></span></p>
+<p><span lang=EN-US style='mso-ansi-language:EN-US'>The previously described transition
+table is an easily-generated view of the following UML State Machine Diagram:<o:p></o:p></span></p>
 
 <p style='margin-bottom:12.0pt'><span style='mso-no-proof:yes'><!--[if gte vml 1]><v:shape
  id="Grafik_x0020_15" o:spid="_x0000_i1036" type="#_x0000_t75" alt="SimpleTutorial.jpg"
  style='width:450pt;height:435.6pt;visibility:visible;mso-wrap-style:square'>
  <v:imagedata src="index-Dateien/image003.jpg" o:title="SimpleTutorial"/>
 </v:shape><![endif]--><![if !vml]><img border=0 width=600 height=581
-src="index-Dateien/image028.jpg" alt=SimpleTutorial.jpg v:shapes="Grafik_x0020_15"><![endif]></span><span
+src="index-Dateien/image004.jpg" alt=SimpleTutorial.jpg v:shapes="Grafik_x0020_15"><![endif]></span><span
 lang=EN-US style='mso-ansi-language:EN-US'><br clear=left style='mso-special-character:
 line-break'>
 <o:p></o:p></span></p>
 
 <p><span lang=EN-US style='mso-ansi-language:EN-US'>First we need to choose a
-frontend. We first take the “standard” frontend looking much like
-Msm v1.x. We need to define events, state machine and states, for example:<o:p></o:p></span></p>
+frontend. We first take the “standard” frontend looking much like Msm
+v1.x. We need to define events, state machine and states, for example:<o:p></o:p></span></p>
 
 <p><code><span lang=EN-US style='font-size:10.0pt;color:blue;mso-ansi-language:
 EN-US'>struct</span></code><code><span lang=EN-US style='font-size:10.0pt;
@@ -6774,8 +6828,8 @@
 style='mso-ansi-language:EN-US'><o:p></o:p></span></p>
 
 <p style='margin-bottom:0cm;margin-bottom:.0001pt'><code><span lang=EN-US
-style='font-size:10.0pt;color:green;mso-ansi-language:EN-US'>// Replaces the default
-no-transition response.</span></code><span lang=EN-US style='mso-ansi-language:
+style='font-size:10.0pt;color:green;mso-ansi-language:EN-US'>// Replaces the
+default no-transition response.</span></code><span lang=EN-US style='mso-ansi-language:
 EN-US'><o:p></o:p></span></p>
 
 <p style='margin-bottom:0cm;margin-bottom:.0001pt'><span lang=EN-US
@@ -6838,8 +6892,8 @@
 color:black;mso-ansi-language:EN-US'>states are now classes/structs</span></u></code><code><span
 lang=EN-US style='font-size:10.0pt;color:black;mso-ansi-language:EN-US'> </span></code><code><span
 lang=EN-US style='mso-ansi-font-size:12.0pt;mso-bidi-font-size:12.0pt;
-font-family:"Times New Roman","serif";color:black;mso-ansi-language:EN-US'>so
-they can have data. The states get default-constructed at initialization time.</span></code><span
+font-family:"Times New Roman","serif";color:black;mso-ansi-language:EN-US'>so they
+can have data. The states get default-constructed at initialization time.</span></code><span
 lang=EN-US style='mso-ansi-language:EN-US'><o:p></o:p></span></p>
 
 <p style='margin-top:5.0pt;margin-right:0cm;margin-bottom:0cm;margin-left:36.0pt;
@@ -6976,7 +7030,7 @@
  style='width:462pt;height:620.4pt;visibility:visible;mso-wrap-style:square'>
  <v:imagedata src="index-Dateien/image005.jpg" o:title="CompositeTutorial"/>
 </v:shape><![endif]--><![if !vml]><img border=0 width=616 height=827
-src="index-Dateien/image029.jpg" alt=CompositeTutorial.jpg v:shapes="Grafik_x0020_14"><![endif]></span><span
+src="index-Dateien/image006.jpg" alt=CompositeTutorial.jpg v:shapes="Grafik_x0020_14"><![endif]></span><span
 lang=EN-US style='mso-ansi-language:EN-US'><br clear=left style='mso-special-character:
 line-break'>
 <o:p></o:p></span></p>
@@ -7269,7 +7323,7 @@
  style='width:486.6pt;height:604.2pt;visibility:visible;mso-wrap-style:square'>
  <v:imagedata src="index-Dateien/image007.jpg" o:title="Orthogonal-deferred"/>
 </v:shape><![endif]--><![if !vml]><img border=0 width=649 height=806
-src="index-Dateien/image030.jpg" alt=Orthogonal-deferred.jpg v:shapes="Bild_x0020_4"><![endif]></span><span
+src="index-Dateien/image008.jpg" alt=Orthogonal-deferred.jpg v:shapes="Bild_x0020_4"><![endif]></span><span
 lang=EN-US style='mso-ansi-language:EN-US'><br clear=left style='mso-special-character:
 line-break'>
 <o:p></o:p></span></p>
@@ -7435,8 +7489,8 @@
 reactivates the last active state of a submachine when this state machine
 becomes active again. <o:p></o:p></span></p>
 
-<p><span lang=EN-US style='mso-ansi-language:EN-US'>The deep history does the
-same recursively, so if this last active state of the submachine was itself a
+<p><span lang=EN-US style='mso-ansi-language:EN-US'>The deep history does the same
+recursively, so if this last active state of the submachine was itself a
 submachine, its last active state would become active and this will continue
 until an active state is a normal state.<o:p></o:p></span></p>
 
@@ -7448,7 +7502,7 @@
  style='width:427.2pt;height:617.4pt;visibility:visible;mso-wrap-style:square'>
  <v:imagedata src="index-Dateien/image009.jpg" o:title="HistoryTutorial"/>
 </v:shape><![endif]--><![if !vml]><img border=0 width=570 height=823
-src="index-Dateien/image031.jpg" alt=HistoryTutorial.jpg v:shapes="Grafik_x0020_12"><![endif]></span><span
+src="index-Dateien/image010.jpg" alt=HistoryTutorial.jpg v:shapes="Grafik_x0020_12"><![endif]></span><span
 lang=EN-US style='mso-ansi-language:EN-US'><br clear=left style='mso-special-character:
 line-break'>
 <o:p></o:p></span></p>
@@ -7536,8 +7590,8 @@
 itself useful on many occasions. Please, do not be frightened as we are not
 talking about ugly shortcuts made of an improbable collusion of Booleans.<o:p></o:p></span></p>
 
-<p><span lang=EN-US style='mso-ansi-language:EN-US'>So what is it and what is its
-use?<o:p></o:p></span></p>
+<p><span lang=EN-US style='mso-ansi-language:EN-US'>So what is it and what is
+its use?<o:p></o:p></span></p>
 
 <p><span lang=EN-US style='mso-ansi-language:EN-US'>If you look into the
 Boost.Statechart documentation you'll find some code like:<o:p></o:p></span></p>
@@ -7575,8 +7629,8 @@
 style='color:blue'>Playing</span> * >() != 0 ) )<o:p></o:p></span></pre>
 
 <p style='tab-stops:45.8pt 91.6pt 137.4pt 183.2pt 229.0pt 274.8pt 320.6pt 366.4pt 412.2pt 458.0pt 503.8pt 549.6pt 595.4pt 641.2pt 687.0pt 732.8pt'><span
-lang=EN-US style='mso-ansi-language:EN-US'>Or flag these 4 states as
-CDLoaded-able. You can do it like this:<o:p></o:p></span></p>
+lang=EN-US style='mso-ansi-language:EN-US'>Or flag these 4 states as CDLoaded-able.
+You can do it like this:<o:p></o:p></span></p>
 
 <p style='tab-stops:45.8pt 91.6pt 137.4pt 183.2pt 229.0pt 274.8pt 320.6pt 366.4pt 412.2pt 458.0pt 503.8pt 549.6pt 595.4pt 641.2pt 687.0pt 732.8pt'><code><span
 lang=EN-US style='font-size:10.0pt;color:blue;mso-ansi-language:EN-US'>typedef</span></code><code><span
@@ -7671,7 +7725,7 @@
  height:655.2pt;visibility:visible;mso-wrap-style:square'>
  <v:imagedata src="index-Dateien/image011.jpg" o:title="FlagsTutorial"/>
 </v:shape><![endif]--><![if !vml]><img border=0 width=616 height=874
-src="index-Dateien/image032.jpg" alt=FlagsTutorial.jpg v:shapes="Grafik_x0020_11"><![endif]></span><span
+src="index-Dateien/image012.jpg" alt=FlagsTutorial.jpg v:shapes="Grafik_x0020_11"><![endif]></span><span
 lang=EN-US style='mso-ansi-language:EN-US'><br clear=left style='mso-special-character:
 line-break'>
 <o:p></o:p></span></p>
@@ -7695,7 +7749,7 @@
  height:331.8pt;visibility:visible;mso-wrap-style:square'>
  <v:imagedata src="index-Dateien/image013.jpg" o:title="Anonymous"/>
 </v:shape><![endif]--><![if !vml]><img border=0 width=444 height=442
-src="index-Dateien/image033.jpg" alt=Anonymous.jpg v:shapes="Grafik_x0020_13"><![endif]></span><span
+src="index-Dateien/image014.jpg" alt=Anonymous.jpg v:shapes="Grafik_x0020_13"><![endif]></span><span
 lang=EN-US style='mso-ansi-language:EN-US'><o:p></o:p></span></p>
 
 <p style='page-break-before:always;tab-stops:45.8pt 91.6pt 137.4pt 183.2pt 229.0pt 274.8pt 320.6pt 366.4pt 412.2pt 458.0pt 503.8pt 549.6pt 595.4pt 641.2pt 687.0pt 732.8pt'><span
@@ -7713,12 +7767,12 @@
 
 <p style='page-break-before:always;tab-stops:45.8pt 91.6pt 137.4pt 183.2pt 229.0pt 274.8pt 320.6pt 366.4pt 412.2pt 458.0pt 503.8pt 549.6pt 595.4pt 641.2pt 687.0pt 732.8pt'><span
 lang=EN-US style='mso-ansi-language:EN-US'>Another possible use would be a
-real-time system called at regular intervals and always doing the same thing, meaning
-implementing the same algorithm. The advantage is that once you know how long a
-transition takes to execute on the system, by calculating the longest path (the
-number of transitions from start to end), you can pretty much know how long
-your algorithm will take in the worst case, which in turns tells you how big of
-a time frame you are to request from a scheduler.<o:p></o:p></span></p>
+real-time system called at regular intervals and always doing the same thing,
+meaning implementing the same algorithm. The advantage is that once you know
+how long a transition takes to execute on the system, by calculating the
+longest path (the number of transitions from start to end), you can pretty much
+know how long your algorithm will take in the worst case, which in turns tells
+you how big of a time frame you are to request from a scheduler.<o:p></o:p></span></p>
 
 <p style='page-break-before:always;tab-stops:45.8pt 91.6pt 137.4pt 183.2pt 229.0pt 274.8pt 320.6pt 366.4pt 412.2pt 458.0pt 503.8pt 549.6pt 595.4pt 641.2pt 687.0pt 732.8pt'><span
 lang=EN-US style='mso-ansi-language:EN-US'>What is the cost of this feature? If
@@ -7760,8 +7814,8 @@
 style='color:#030003'>State3</span><span style='mso-spacerun:yes'> 
 </span>, <span style='color:#030003'>none</span><span
 style='mso-spacerun:yes'>        </span>, <span
-style='color:#030003'>State4</span> <span
-style='mso-spacerun:yes'> </span>, <span style='color:#030003'>State3ToState4</span><span
+style='color:#030003'>State4</span><span style='mso-spacerun:yes'> 
+</span>, <span style='color:#030003'>State3ToState4</span><span
 style='mso-spacerun:yes'>      </span>, <span
 style='color:#030003'>always_true</span><span
 style='mso-spacerun:yes'>         
@@ -7796,30 +7850,31 @@
 name="_Internal_transitions"></a><span lang=EN-US style='mso-fareast-font-family:
 "Times New Roman";mso-ansi-language:EN-US'>Internal transitions<o:p></o:p></span></h3>
 
-<p class=MsoNormal style='margin-bottom:6.0pt'><a name="_The_many_ways"></a><span
-lang=EN-US style='mso-ansi-language:EN-US'>Internal transitions are transitions
-executing in the scope of the active state, being a simple state or a
-submachine. One can see them as a self-transition of this state, without an
-entry or exit action called.<o:p></o:p></span></p>
-
-<p class=MsoNormal><span lang=EN-US style='mso-ansi-language:EN-US'>Internal
-transitions are specified as having a higher priority than normal transitions.
-While it makes sense for a submachine with exit points, it is surprising for a
-simple state. MSM lets you define the transition priority by setting the
-transition’s position inside the transition table. Later on, a table for
-states is also a possibility.<o:p></o:p></span></p>
+<p class=MsoNormal style='margin-bottom:6.0pt;tab-stops:45.8pt 91.6pt 137.4pt 183.2pt 229.0pt 274.8pt 320.6pt 366.4pt 412.2pt 458.0pt 503.8pt 549.6pt 595.4pt 641.2pt 687.0pt 732.8pt'><a
+name="_The_many_ways"></a><span lang=EN-US style='mso-ansi-language:EN-US'>Internal
+transitions are transitions executing in the scope of the active state, being a
+simple state or a submachine. One can see them as a self-transition of this
+state, without an entry or exit action called.<o:p></o:p></span></p>
 
-<p class=MsoNormal style='margin-bottom:6.0pt'><span lang=EN-US
-style='mso-ansi-language:EN-US'><o:p> </o:p></span></p>
+<p class=MsoNormal style='tab-stops:45.8pt 91.6pt 137.4pt 183.2pt 229.0pt 274.8pt 320.6pt 366.4pt 412.2pt 458.0pt 503.8pt 549.6pt 595.4pt 641.2pt 687.0pt 732.8pt'><span
+lang=EN-US style='mso-ansi-language:EN-US'>Internal transitions are specified
+as having a higher priority than normal transitions. While it makes sense for a
+submachine with exit points, it is surprising for a simple state. MSM lets you
+define the transition priority by setting the transition’s position
+inside the transition table. Later on, a table for states is also a
+possibility.<o:p></o:p></span></p>
+
+<p class=MsoNormal style='margin-bottom:6.0pt;tab-stops:45.8pt 91.6pt 137.4pt 183.2pt 229.0pt 274.8pt 320.6pt 366.4pt 412.2pt 458.0pt 503.8pt 549.6pt 595.4pt 641.2pt 687.0pt 732.8pt'><span
+lang=EN-US style='mso-ansi-language:EN-US'><o:p> </o:p></span></p>
 
-<p class=MsoNormal style='margin-bottom:6.0pt'><span lang=EN-US
-style='mso-ansi-language:EN-US'>To define internal transitions, use “</span><span
-lang=EN-US style='font-family:"Courier New";mso-ansi-language:EN-US'>irow</span><span
-lang=EN-US style='mso-ansi-language:EN-US'>” instead of the standard
-rows. Internal rows come in different flavors:<o:p></o:p></span></p>
+<p class=MsoNormal style='margin-bottom:6.0pt;tab-stops:45.8pt 91.6pt 137.4pt 183.2pt 229.0pt 274.8pt 320.6pt 366.4pt 412.2pt 458.0pt 503.8pt 549.6pt 595.4pt 641.2pt 687.0pt 732.8pt'><span
+lang=EN-US style='mso-ansi-language:EN-US'>To define internal transitions, use
+“</span><span lang=EN-US style='font-family:"Courier New";mso-ansi-language:
+EN-US'>irow</span><span lang=EN-US style='mso-ansi-language:EN-US'>”
+instead of the standard rows. Internal rows come in different flavors:<o:p></o:p></span></p>
 
 <p class=MsoListParagraphCxSpFirst style='margin-bottom:6.0pt;mso-add-space:
-auto;text-indent:-18.0pt;mso-list:l12 level1 lfo49'><![if !supportLists]><span
+auto;text-indent:-18.0pt;mso-list:l12 level1 lfo17;tab-stops:45.8pt 91.6pt 137.4pt 183.2pt 229.0pt 274.8pt 320.6pt 366.4pt 412.2pt 458.0pt 503.8pt 549.6pt 595.4pt 641.2pt 687.0pt 732.8pt'><![if !supportLists]><span
 lang=EN-US style='font-family:Symbol;mso-fareast-font-family:Symbol;mso-bidi-font-family:
 Symbol;mso-ansi-language:EN-US'><span style='mso-list:Ignore'>·<span
 style='font:7.0pt "Times New Roman"'>       </span></span></span><![endif]><span
@@ -7827,7 +7882,7 @@
 a transition action<o:p></o:p></span></p>
 
 <p class=MsoListParagraphCxSpMiddle style='margin-bottom:6.0pt;mso-add-space:
-auto;text-indent:-18.0pt;mso-list:l12 level1 lfo49'><![if !supportLists]><span
+auto;text-indent:-18.0pt;mso-list:l12 level1 lfo17;tab-stops:45.8pt 91.6pt 137.4pt 183.2pt 229.0pt 274.8pt 320.6pt 366.4pt 412.2pt 458.0pt 503.8pt 549.6pt 595.4pt 641.2pt 687.0pt 732.8pt'><![if !supportLists]><span
 lang=EN-US style='font-family:Symbol;mso-fareast-font-family:Symbol;mso-bidi-font-family:
 Symbol;mso-ansi-language:EN-US'><span style='mso-list:Ignore'>·<span
 style='font:7.0pt "Times New Roman"'>       </span></span></span><![endif]><span
@@ -7835,23 +7890,23 @@
 a guard condition<o:p></o:p></span></p>
 
 <p class=MsoListParagraphCxSpLast style='margin-bottom:6.0pt;mso-add-space:
-auto;text-indent:-18.0pt;mso-list:l12 level1 lfo49'><![if !supportLists]><span
+auto;text-indent:-18.0pt;mso-list:l12 level1 lfo17;tab-stops:45.8pt 91.6pt 137.4pt 183.2pt 229.0pt 274.8pt 320.6pt 366.4pt 412.2pt 458.0pt 503.8pt 549.6pt 595.4pt 641.2pt 687.0pt 732.8pt'><![if !supportLists]><span
 lang=EN-US style='font-family:Symbol;mso-fareast-font-family:Symbol;mso-bidi-font-family:
 Symbol;mso-ansi-language:EN-US'><span style='mso-list:Ignore'>·<span
 style='font:7.0pt "Times New Roman"'>       </span></span></span><![endif]><span
 lang=EN-US style='mso-ansi-language:EN-US'>irow: an internal transition with a
 transition action and guard condition<o:p></o:p></span></p>
 
-<p class=MsoNormal style='margin-bottom:6.0pt'><span lang=EN-US
-style='mso-ansi-language:EN-US'><o:p> </o:p></span></p>
+<p class=MsoNormal style='margin-bottom:6.0pt;tab-stops:45.8pt 91.6pt 137.4pt 183.2pt 229.0pt 274.8pt 320.6pt 366.4pt 412.2pt 458.0pt 503.8pt 549.6pt 595.4pt 641.2pt 687.0pt 732.8pt'><span
+lang=EN-US style='mso-ansi-language:EN-US'><o:p> </o:p></span></p>
 
-<p class=MsoNormal style='margin-bottom:6.0pt'><span lang=EN-US
-style='mso-ansi-language:EN-US'>The only syntactic difference with their row
-equivalent is the absence of a target state. For example,<o:p></o:p></span></p>
+<p class=MsoNormal style='margin-bottom:6.0pt;tab-stops:45.8pt 91.6pt 137.4pt 183.2pt 229.0pt 274.8pt 320.6pt 366.4pt 412.2pt 458.0pt 503.8pt 549.6pt 595.4pt 641.2pt 687.0pt 732.8pt'><span
+lang=EN-US style='mso-ansi-language:EN-US'>The only syntactic difference with
+their row equivalent is the absence of a target state. For example,<o:p></o:p></span></p>
 
-<p class=MsoNormal style='margin-bottom:6.0pt'><span lang=EN-US
-style='font-size:10.0pt;font-family:"Courier New";mso-fareast-font-family:"Times New Roman";
-color:#030003;mso-ansi-language:EN-US;mso-no-proof:yes'>irow</span><span
+<p class=MsoNormal style='margin-bottom:6.0pt;tab-stops:45.8pt 91.6pt 137.4pt 183.2pt 229.0pt 274.8pt 320.6pt 366.4pt 412.2pt 458.0pt 503.8pt 549.6pt 595.4pt 641.2pt 687.0pt 732.8pt'><span
+lang=EN-US style='font-size:10.0pt;font-family:"Courier New";mso-fareast-font-family:
+"Times New Roman";color:#030003;mso-ansi-language:EN-US;mso-no-proof:yes'>irow</span><span
 lang=EN-US style='font-size:10.0pt;font-family:"Courier New";mso-fareast-font-family:
 "Times New Roman";mso-ansi-language:EN-US;mso-no-proof:yes'> < <span
 style='color:#030003'>Empty</span><span style='mso-spacerun:yes'>  
@@ -7860,8 +7915,8 @@
 ,&<span style='color:#030003'>p</span>::<span style='color:#030003'>internal_guard</span><span
 style='mso-spacerun:yes'>    </span>><o:p></o:p></span></p>
 
-<p class=MsoNormal style='margin-bottom:6.0pt'><span lang=EN-US
-style='mso-ansi-language:EN-US'>Is a transition internal to </span><span
+<p class=MsoNormal style='margin-bottom:6.0pt;tab-stops:45.8pt 91.6pt 137.4pt 183.2pt 229.0pt 274.8pt 320.6pt 366.4pt 412.2pt 458.0pt 503.8pt 549.6pt 595.4pt 641.2pt 687.0pt 732.8pt'><span
+lang=EN-US style='mso-ansi-language:EN-US'>Is a transition internal to </span><span
 lang=EN-US style='font-family:"Courier New";mso-ansi-language:EN-US'>Empty</span><span
 lang=EN-US style='mso-ansi-language:EN-US'>, triggered with the event </span><span
 lang=EN-US style='font-family:"Courier New";mso-ansi-language:EN-US'>cd_detected</span><span
@@ -7872,10 +7927,10 @@
 lang=EN-US style='mso-ansi-language:EN-US'>. The action and guard signature is
 the standard one.<o:p></o:p></span></p>
 
-<p class=MsoNormal style='margin-bottom:6.0pt'><span lang=EN-US
-style='mso-ansi-language:EN-US'>The functor front-end also allows internal
-transitions, but requires no new row type. Simply replacing the target state by
-“none” defines an internal transition.<o:p></o:p></span></p>
+<p class=MsoNormal style='margin-bottom:6.0pt;tab-stops:45.8pt 91.6pt 137.4pt 183.2pt 229.0pt 274.8pt 320.6pt 366.4pt 412.2pt 458.0pt 503.8pt 549.6pt 595.4pt 641.2pt 687.0pt 732.8pt'><span
+lang=EN-US style='mso-ansi-language:EN-US'>The functor front-end also allows
+internal transitions, but requires no new row type. Simply replacing the target
+state by “none” defines an internal transition.<o:p></o:p></span></p>
 
 <h3 style='tab-stops:45.8pt 91.6pt 137.4pt 183.2pt 229.0pt 274.8pt 320.6pt 366.4pt 412.2pt 458.0pt 503.8pt 549.6pt 595.4pt 641.2pt 687.0pt 732.8pt'><span
 lang=EN-US style='mso-fareast-font-family:"Times New Roman";mso-ansi-language:
@@ -7891,10 +7946,10 @@
 concepts, with the possible exception of exit points.<o:p></o:p></span></p>
 
 <p style='tab-stops:45.8pt 91.6pt 137.4pt 183.2pt 229.0pt 274.8pt 320.6pt 366.4pt 412.2pt 458.0pt 503.8pt 549.6pt 595.4pt 641.2pt 687.0pt 732.8pt'><span
-lang=EN-US style='mso-ansi-language:EN-US'>Let us count the ways to enter a
-composite state, as specified by UML:<o:p></o:p></span></p>
+lang=EN-US style='mso-ansi-language:EN-US'>Let us count the ways to enter a composite
+state, as specified by UML:<o:p></o:p></span></p>
 
-<p style='margin-left:36.0pt;text-indent:-18.0pt;mso-list:l14 level1 lfo17;
+<p style='margin-left:36.0pt;text-indent:-18.0pt;mso-list:l14 level1 lfo18;
 tab-stops:list 36.0pt'><![if !supportLists]><span lang=EN-US style='font-size:
 10.0pt;mso-bidi-font-size:12.0pt;font-family:Symbol;mso-fareast-font-family:
 Symbol;mso-bidi-font-family:Symbol;mso-ansi-language:EN-US'><span
@@ -7905,7 +7960,7 @@
 as seen in the previous tutorials. The initial state in each orthogonal region
 becomes active.<o:p></o:p></span></p>
 
-<p style='margin-left:36.0pt;text-indent:-18.0pt;mso-list:l14 level1 lfo17;
+<p style='margin-left:36.0pt;text-indent:-18.0pt;mso-list:l14 level1 lfo18;
 tab-stops:list 36.0pt'><![if !supportLists]><span lang=EN-US style='font-size:
 10.0pt;mso-bidi-font-size:12.0pt;font-family:Symbol;mso-fareast-font-family:
 Symbol;mso-bidi-font-family:Symbol;mso-ansi-language:EN-US'><span
@@ -7914,7 +7969,7 @@
 EN-US'>Shallow/Deep History entry</span></u><span lang=EN-US style='mso-ansi-language:
 EN-US'>: See History tutorial.<o:p></o:p></span></p>
 
-<p style='margin-left:36.0pt;text-indent:-18.0pt;mso-list:l14 level1 lfo17;
+<p style='margin-left:36.0pt;text-indent:-18.0pt;mso-list:l14 level1 lfo18;
 tab-stops:list 36.0pt'><![if !supportLists]><span lang=EN-US style='font-size:
 10.0pt;mso-bidi-font-size:12.0pt;font-family:Symbol;mso-fareast-font-family:
 Symbol;mso-bidi-font-family:Symbol;mso-ansi-language:EN-US'><span
@@ -7925,7 +7980,7 @@
 active and like in the previous examples, its entry action is executed after
 the entry action from the composite state.<o:p></o:p></span></p>
 
-<p style='margin-left:36.0pt;text-indent:-18.0pt;mso-list:l14 level1 lfo17;
+<p style='margin-left:36.0pt;text-indent:-18.0pt;mso-list:l14 level1 lfo18;
 tab-stops:list 36.0pt'><![if !supportLists]><span lang=EN-US style='font-size:
 10.0pt;mso-bidi-font-size:12.0pt;font-family:Symbol;mso-fareast-font-family:
 Symbol;mso-bidi-font-family:Symbol;mso-ansi-language:EN-US'><span
@@ -7934,7 +7989,7 @@
 EN-US'>Fork</span></u><span lang=EN-US style='mso-ansi-language:EN-US'>: an
 explicit entry into more than one region.<o:p></o:p></span></p>
 
-<p style='margin-left:36.0pt;text-indent:-18.0pt;mso-list:l14 level1 lfo17;
+<p style='margin-left:36.0pt;text-indent:-18.0pt;mso-list:l14 level1 lfo18;
 tab-stops:list 36.0pt'><![if !supportLists]><span lang=EN-US style='font-size:
 10.0pt;mso-bidi-font-size:12.0pt;font-family:Symbol;mso-fareast-font-family:
 Symbol;mso-bidi-font-family:Symbol;mso-ansi-language:EN-US'><span
@@ -7950,7 +8005,7 @@
 have only one transition inside the composite. It is supposed to provide some
 kind of encapsulation.<o:p></o:p></span></p>
 
-<p style='margin-left:36.0pt;text-indent:-18.0pt;mso-list:l14 level1 lfo17;
+<p style='margin-left:36.0pt;text-indent:-18.0pt;mso-list:l14 level1 lfo18;
 tab-stops:list 36.0pt'><![if !supportLists]><span lang=EN-US style='font-size:
 10.0pt;mso-bidi-font-size:12.0pt;font-family:Symbol;mso-fareast-font-family:
 Symbol;mso-bidi-font-family:Symbol;mso-ansi-language:EN-US'><span
@@ -7965,7 +8020,7 @@
 <p style='tab-stops:45.8pt 91.6pt 137.4pt 183.2pt 229.0pt 274.8pt 320.6pt 366.4pt 412.2pt 458.0pt 503.8pt 549.6pt 595.4pt 641.2pt 687.0pt 732.8pt'><span
 lang=EN-US style='mso-ansi-language:EN-US'>Exiting is somehow easier:<o:p></o:p></span></p>
 
-<p style='margin-left:36.0pt;text-indent:-18.0pt;mso-list:l8 level1 lfo18;
+<p style='margin-left:36.0pt;text-indent:-18.0pt;mso-list:l8 level1 lfo19;
 tab-stops:list 36.0pt'><![if !supportLists]><span lang=EN-US style='font-size:
 10.0pt;mso-bidi-font-size:12.0pt;font-family:Symbol;mso-fareast-font-family:
 Symbol;mso-bidi-font-family:Symbol;mso-ansi-language:EN-US'><span
@@ -7974,7 +8029,7 @@
 exit: a transition originating from the edge of a composite state to another
 state<o:p></o:p></span></p>
 
-<p style='margin-left:36.0pt;text-indent:-18.0pt;mso-list:l8 level1 lfo18;
+<p style='margin-left:36.0pt;text-indent:-18.0pt;mso-list:l8 level1 lfo19;
 tab-stops:list 36.0pt'><![if !supportLists]><span lang=EN-US style='font-size:
 10.0pt;mso-bidi-font-size:12.0pt;font-family:Symbol;mso-fareast-font-family:
 Symbol;mso-bidi-font-family:Symbol;mso-ansi-language:EN-US'><span
@@ -7987,11 +8042,11 @@
 lang=EN-US style='mso-ansi-language:EN-US'><o:p> </o:p></span></p>
 
 <p style='tab-stops:45.8pt 91.6pt 137.4pt 183.2pt 229.0pt 274.8pt 320.6pt 366.4pt 412.2pt 458.0pt 503.8pt 549.6pt 595.4pt 641.2pt 687.0pt 732.8pt'><span
-lang=EN-US style='mso-ansi-language:EN-US'>Msm (almost) fully supports these
-features. Almost because there is currently one limitation, that it is only
-possible to explicitly enter a sub- composite of the target composite and not
-exit it “upwards” this way. To exit, Msm just supports the two
-previously described methods.<o:p></o:p></span></p>
+lang=EN-US style='mso-ansi-language:EN-US'>Msm (almost) fully supports these features.
+Almost because there is currently one limitation, that it is only possible to
+explicitly enter a sub- composite of the target composite and not exit it
+“upwards” this way. To exit, Msm just supports the two previously
+described methods.<o:p></o:p></span></p>
 
 <p style='tab-stops:45.8pt 91.6pt 137.4pt 183.2pt 229.0pt 274.8pt 320.6pt 366.4pt 412.2pt 458.0pt 503.8pt 549.6pt 595.4pt 641.2pt 687.0pt 732.8pt'><span
 lang=EN-US style='mso-ansi-language:EN-US'>Sounds a bit complicated? Let us
@@ -8006,7 +8061,7 @@
  height:574.8pt;visibility:visible;mso-wrap-style:square'>
  <v:imagedata src="index-Dateien/image015.jpg" o:title="entry tutorial"/>
 </v:shape><![endif]--><![if !vml]><img border=0 width=634 height=766
-src="index-Dateien/image034.jpg" alt="entry tutorial.jpg" v:shapes="Grafik_x0020_10"><![endif]></span><span
+src="index-Dateien/image016.jpg" alt="entry tutorial.jpg" v:shapes="Grafik_x0020_10"><![endif]></span><span
 lang=EN-US style='mso-ansi-language:EN-US'><br clear=left style='mso-special-character:
 line-break'>
 <o:p></o:p></span></p>
@@ -8014,7 +8069,7 @@
 <p style='tab-stops:45.8pt 91.6pt 137.4pt 183.2pt 229.0pt 274.8pt 320.6pt 366.4pt 412.2pt 458.0pt 503.8pt 549.6pt 595.4pt 641.2pt 687.0pt 732.8pt'><span
 lang=EN-US style='mso-ansi-language:EN-US'>We find in this diagram:<o:p></o:p></span></p>
 
-<p style='margin-left:36.0pt;text-indent:-18.0pt;mso-list:l1 level1 lfo19;
+<p style='margin-left:36.0pt;text-indent:-18.0pt;mso-list:l1 level1 lfo20;
 tab-stops:list 36.0pt'><![if !supportLists]><span lang=EN-US style='font-size:
 10.0pt;mso-bidi-font-size:12.0pt;font-family:Symbol;mso-fareast-font-family:
 Symbol;mso-bidi-font-family:Symbol;mso-ansi-language:EN-US'><span
@@ -8033,7 +8088,7 @@
 "Courier New";mso-ansi-language:EN-US'>SubState1b</span><span lang=EN-US
 style='mso-ansi-language:EN-US'>.<o:p></o:p></span></p>
 
-<p style='margin-left:36.0pt;text-indent:-18.0pt;mso-list:l1 level1 lfo19;
+<p style='margin-left:36.0pt;text-indent:-18.0pt;mso-list:l1 level1 lfo20;
 tab-stops:list 36.0pt'><![if !supportLists]><span lang=EN-US style='font-size:
 10.0pt;mso-bidi-font-size:12.0pt;font-family:Symbol;mso-fareast-font-family:
 Symbol;mso-bidi-font-family:Symbol;mso-ansi-language:EN-US'><span
@@ -8052,7 +8107,7 @@
 mso-ansi-language:EN-US'>SubState1b</span><span lang=EN-US style='mso-ansi-language:
 EN-US'>, activated.<o:p></o:p></span></p>
 
-<p style='margin-left:36.0pt;text-indent:-18.0pt;mso-list:l1 level1 lfo19;
+<p style='margin-left:36.0pt;text-indent:-18.0pt;mso-list:l1 level1 lfo20;
 tab-stops:list 36.0pt'><![if !supportLists]><span lang=EN-US style='font-size:
 10.0pt;mso-bidi-font-size:12.0pt;font-family:Symbol;mso-fareast-font-family:
 Symbol;mso-bidi-font-family:Symbol;mso-ansi-language:EN-US'><span
@@ -8071,7 +8126,7 @@
 lang=EN-US style='mso-ansi-language:EN-US'>. Both states become active so no
 zone is default activated (if we had a third zone, it would be).<o:p></o:p></span></p>
 
-<p style='margin-left:36.0pt;text-indent:-18.0pt;mso-list:l1 level1 lfo19;
+<p style='margin-left:36.0pt;text-indent:-18.0pt;mso-list:l1 level1 lfo20;
 tab-stops:list 36.0pt'><![if !supportLists]><span lang=EN-US style='font-size:
 10.0pt;mso-bidi-font-size:12.0pt;font-family:Symbol;mso-fareast-font-family:
 Symbol;mso-bidi-font-family:Symbol;mso-ansi-language:EN-US'><span
@@ -8089,7 +8144,7 @@
 style='font-family:"Courier New";mso-ansi-language:EN-US'>SubState1b</span><span
 lang=EN-US style='mso-ansi-language:EN-US'> becomes active.<o:p></o:p></span></p>
 
-<p style='margin-left:36.0pt;text-indent:-18.0pt;mso-list:l1 level1 lfo19;
+<p style='margin-left:36.0pt;text-indent:-18.0pt;mso-list:l1 level1 lfo20;
 tab-stops:list 36.0pt'><![if !supportLists]><span lang=EN-US style='font-size:
 10.0pt;mso-bidi-font-size:12.0pt;font-family:Symbol;mso-fareast-font-family:
 Symbol;mso-bidi-font-family:Symbol;mso-ansi-language:EN-US'><span
@@ -8297,8 +8352,8 @@
 lang=EN-US style='mso-ansi-language:EN-US'><o:p> </o:p></span></p>
 
 <p style='tab-stops:45.8pt 91.6pt 137.4pt 183.2pt 229.0pt 274.8pt 320.6pt 366.4pt 412.2pt 458.0pt 503.8pt 549.6pt 595.4pt 641.2pt 687.0pt 732.8pt'><span
-lang=EN-US style='color:black;mso-ansi-language:EN-US'>With SubState2 defined
-as before and SubState2b defined as being in the second zone (Caution: Msm does
+lang=EN-US style='color:black;mso-ansi-language:EN-US'>With SubState2 defined as
+before and SubState2b defined as being in the second zone (Caution: Msm does
 not check yet that the zone is correct):</span><span lang=EN-US
 style='mso-ansi-language:EN-US'><o:p></o:p></span></p>
 
@@ -8545,8 +8600,8 @@
 <p style='margin-bottom:0cm;margin-bottom:.0001pt;tab-stops:45.8pt 91.6pt 137.4pt 183.2pt 229.0pt 274.8pt 320.6pt 366.4pt 412.2pt 458.0pt 503.8pt 549.6pt 595.4pt 641.2pt 687.0pt 732.8pt'><u><span
 lang=EN-US style='mso-ansi-language:EN-US'>Important note 1:</span></u><span
 lang=EN-US style='mso-ansi-language:EN-US'> UML defines transiting to an entry
-pseudo state and having either no second transition or one with a guard as an error
-but defines no error handling. Msm will tolerate this behavior; the entry
+pseudo state and having either no second transition or one with a guard as an
+error but defines no error handling. Msm will tolerate this behavior; the entry
 pseudo state will simply be the newly active state.<o:p></o:p></span></p>
 
 <p style='margin-bottom:0cm;margin-bottom:.0001pt;tab-stops:45.8pt 91.6pt 137.4pt 183.2pt 229.0pt 274.8pt 320.6pt 366.4pt 412.2pt 458.0pt 503.8pt 549.6pt 595.4pt 641.2pt 687.0pt 732.8pt'><span
@@ -8633,16 +8688,16 @@
 "Times New Roman";mso-ansi-language:EN-US'>Conflicting Transitions<o:p></o:p></span></h3>
 
 <p style='tab-stops:45.8pt 91.6pt 137.4pt 183.2pt 229.0pt 274.8pt 320.6pt 366.4pt 412.2pt 458.0pt 503.8pt 549.6pt 595.4pt 641.2pt 687.0pt 732.8pt'><span
-lang=EN-US style='mso-ansi-language:EN-US'>According to the UML standard, two
-transitions are said to be in conflict if they can both trigger an exit from
-the same state with the same event, meaning if at a certain time and for a
-given event, these two transitions can be triggered.<o:p></o:p></span></p>
+lang=EN-US style='mso-ansi-language:EN-US'>According to the UML standard, two transitions
+are said to be in conflict if they can both trigger an exit from the same state
+with the same event, meaning if at a certain time and for a given event, these
+two transitions can be triggered.<o:p></o:p></span></p>
 
 <p style='tab-stops:45.8pt 91.6pt 137.4pt 183.2pt 229.0pt 274.8pt 320.6pt 366.4pt 412.2pt 458.0pt 503.8pt 549.6pt 595.4pt 641.2pt 687.0pt 732.8pt'><span
 lang=EN-US style='mso-ansi-language:EN-US'>There are two kinds of conflicts,
 both supported by Msm:<o:p></o:p></span></p>
 
-<p style='margin-left:36.0pt;text-indent:-18.0pt;mso-list:l43 level1 lfo20;
+<p style='margin-left:36.0pt;text-indent:-18.0pt;mso-list:l43 level1 lfo21;
 tab-stops:list 36.0pt'><![if !supportLists]><span lang=EN-US style='font-size:
 10.0pt;mso-bidi-font-size:12.0pt;font-family:Symbol;mso-fareast-font-family:
 Symbol;mso-bidi-font-family:Symbol;mso-ansi-language:EN-US'><span
@@ -8651,7 +8706,7 @@
 a given source state, several transitions have been defined, triggered by the
 same event but <u>different guards</u>.<o:p></o:p></span></p>
 
-<p style='margin-left:36.0pt;text-indent:-18.0pt;mso-list:l43 level1 lfo20;
+<p style='margin-left:36.0pt;text-indent:-18.0pt;mso-list:l43 level1 lfo21;
 tab-stops:list 36.0pt'><![if !supportLists]><span lang=EN-US style='font-size:
 10.0pt;mso-bidi-font-size:12.0pt;font-family:Symbol;mso-fareast-font-family:
 Symbol;mso-bidi-font-family:Symbol;mso-ansi-language:EN-US'><span
@@ -8796,13 +8851,13 @@
 action/exit action get the state machine passed as argument.<o:p></o:p></span></p>
 
 <p style='tab-stops:45.8pt 91.6pt 137.4pt 183.2pt 229.0pt 274.8pt 320.6pt 366.4pt 412.2pt 458.0pt 503.8pt 549.6pt 595.4pt 641.2pt 687.0pt 732.8pt'><span
-lang=EN-US style='mso-ansi-language:EN-US'>All of the states defined in the
-state machine are created upon state machine construction. This has the huge
+lang=EN-US style='mso-ansi-language:EN-US'>All of the states defined in the state
+machine are created upon state machine construction. This has the huge
 advantage of a reduced syntactic noise. The cost is a small loss of control of
 the user on the state creation and access. Quite fast came from the beta
 testers the request of a way for a state to get access to its containing state
-machine. This is implemented via another policy. Basically, a state needs to change
-its declaration to:<o:p></o:p></span></p>
+machine. This is implemented via another policy. Basically, a state needs to
+change its declaration to:<o:p></o:p></span></p>
 
 <p style='margin-bottom:0cm;margin-bottom:.0001pt;tab-stops:45.8pt 91.6pt 137.4pt 183.2pt 229.0pt 274.8pt 320.6pt 366.4pt 412.2pt 458.0pt 503.8pt 549.6pt 595.4pt 641.2pt 687.0pt 732.8pt'><code><i
 style='mso-bidi-font-style:normal'><span lang=EN-US style='font-size:10.0pt;
@@ -8910,8 +8965,8 @@
 lang=EN-US style='mso-ansi-language:EN-US'><o:p></o:p></span></p>
 
 <p style='tab-stops:45.8pt 91.6pt 137.4pt 183.2pt 229.0pt 274.8pt 320.6pt 366.4pt 412.2pt 458.0pt 503.8pt 549.6pt 595.4pt 641.2pt 687.0pt 732.8pt'><span
-lang=EN-US style='color:black;mso-ansi-language:EN-US'>Depending on your
-personal taste.</span><span lang=EN-US style='mso-ansi-language:EN-US'><o:p></o:p></span></p>
+lang=EN-US style='color:black;mso-ansi-language:EN-US'>Depending on your personal
+taste.</span><span lang=EN-US style='mso-ansi-language:EN-US'><o:p></o:p></span></p>
 
 <h3 style='tab-stops:45.8pt 91.6pt 137.4pt 183.2pt 229.0pt 274.8pt 320.6pt 366.4pt 412.2pt 458.0pt 503.8pt 549.6pt 595.4pt 641.2pt 687.0pt 732.8pt'><a
 name="_Copying"></a><a name="_Exceptions"></a><code><span lang=EN-US
@@ -8928,9 +8983,9 @@
 
 <p style='tab-stops:45.8pt 91.6pt 137.4pt 183.2pt 229.0pt 274.8pt 320.6pt 366.4pt 412.2pt 458.0pt 503.8pt 549.6pt 595.4pt 641.2pt 687.0pt 732.8pt'><code><span
 lang=EN-US style='mso-ansi-font-size:12.0pt;mso-bidi-font-size:12.0pt;
-font-family:"Times New Roman","serif";mso-ansi-language:EN-US'>Of course,
-errors happen. In this case, the state machine is said to be unstable, because
-a transition may have been partially executed. The framework offers a chance to
+font-family:"Times New Roman","serif";mso-ansi-language:EN-US'>Of course, errors
+happen. In this case, the state machine is said to be unstable, because a
+transition may have been partially executed. The framework offers a chance to
 set it straight by catching std::exception and calling: </span></code><span
 lang=EN-US style='mso-ansi-language:EN-US'><o:p></o:p></span></p>
 
@@ -8970,7 +9025,7 @@
 also provides a few helper methods which you might need but will probably not:</span></code><span
 lang=EN-US style='mso-ansi-language:EN-US'><o:p></o:p></span></p>
 
-<p style='margin-left:36.0pt;text-indent:-18.0pt;mso-list:l44 level1 lfo21;
+<p style='margin-left:36.0pt;text-indent:-18.0pt;mso-list:l44 level1 lfo22;
 tab-stops:list 36.0pt'><![if !supportLists]><span lang=EN-US style='font-size:
 10.0pt;mso-bidi-font-size:12.0pt;font-family:Symbol;mso-fareast-font-family:
 Symbol;mso-bidi-font-family:Symbol;mso-ansi-language:EN-US'><span
@@ -9000,7 +9055,7 @@
 color:black;mso-ansi-language:EN-US'>: the ids of currently active states</span></code><span
 lang=EN-US style='mso-ansi-language:EN-US'><o:p></o:p></span></p>
 
-<p style='margin-left:36.0pt;text-indent:-18.0pt;mso-list:l44 level1 lfo21;
+<p style='margin-left:36.0pt;text-indent:-18.0pt;mso-list:l44 level1 lfo22;
 tab-stops:list 36.0pt'><![if !supportLists]><span lang=EN-US style='font-size:
 10.0pt;mso-bidi-font-size:12.0pt;font-family:Symbol;mso-fareast-font-family:
 Symbol;mso-bidi-font-family:Symbol;mso-ansi-language:EN-US'><span
@@ -9030,7 +9085,7 @@
 pointer to a (user- or default-) base state. It executes in O(number of
 states).</span></code><span lang=EN-US style='mso-ansi-language:EN-US'><o:p></o:p></span></p>
 
-<p style='margin-left:36.0pt;text-indent:-18.0pt;mso-list:l44 level1 lfo21;
+<p style='margin-left:36.0pt;text-indent:-18.0pt;mso-list:l44 level1 lfo22;
 tab-stops:list 36.0pt'><![if !supportLists]><span lang=EN-US style='font-size:
 10.0pt;mso-bidi-font-size:12.0pt;font-family:Symbol;mso-fareast-font-family:
 Symbol;mso-bidi-font-family:Symbol;mso-ansi-language:EN-US'><span
@@ -9076,7 +9131,7 @@
 doing 5 different jobs:</span></code><span lang=EN-US style='mso-ansi-language:
 EN-US'><o:p></o:p></span></p>
 
-<p style='margin-left:36.0pt;text-indent:-18.0pt;mso-list:l19 level1 lfo22;
+<p style='margin-left:36.0pt;text-indent:-18.0pt;mso-list:l19 level1 lfo23;
 tab-stops:list 36.0pt'><![if !supportLists]><span lang=EN-US style='font-size:
 10.0pt;mso-bidi-font-size:12.0pt;font-family:Symbol;mso-fareast-font-family:
 Symbol;mso-bidi-font-family:Symbol;mso-ansi-language:EN-US'><span
@@ -9086,7 +9141,7 @@
 color:black;mso-ansi-language:EN-US'>checking for terminate/interrupt states</span></code><span
 lang=EN-US style='mso-ansi-language:EN-US'><o:p></o:p></span></p>
 
-<p style='margin-left:36.0pt;text-indent:-18.0pt;mso-list:l19 level1 lfo22;
+<p style='margin-left:36.0pt;text-indent:-18.0pt;mso-list:l19 level1 lfo23;
 tab-stops:list 36.0pt'><![if !supportLists]><span lang=EN-US style='font-size:
 10.0pt;mso-bidi-font-size:12.0pt;font-family:Symbol;mso-fareast-font-family:
 Symbol;mso-bidi-font-family:Symbol;mso-ansi-language:EN-US'><span
@@ -9097,7 +9152,7 @@
 entry/exit/transition actions generating themselves events)</span></code><span
 lang=EN-US style='mso-ansi-language:EN-US'><o:p></o:p></span></p>
 
-<p style='margin-left:36.0pt;text-indent:-18.0pt;mso-list:l19 level1 lfo22;
+<p style='margin-left:36.0pt;text-indent:-18.0pt;mso-list:l19 level1 lfo23;
 tab-stops:list 36.0pt'><![if !supportLists]><span lang=EN-US style='font-size:
 10.0pt;mso-bidi-font-size:12.0pt;font-family:Symbol;mso-fareast-font-family:
 Symbol;mso-bidi-font-family:Symbol;mso-ansi-language:EN-US'><span
@@ -9107,7 +9162,7 @@
 color:black;mso-ansi-language:EN-US'>handling deferred events</span></code><span
 lang=EN-US style='mso-ansi-language:EN-US'><o:p></o:p></span></p>
 
-<p style='margin-left:36.0pt;text-indent:-18.0pt;mso-list:l19 level1 lfo22;
+<p style='margin-left:36.0pt;text-indent:-18.0pt;mso-list:l19 level1 lfo23;
 tab-stops:list 36.0pt'><![if !supportLists]><span lang=EN-US style='font-size:
 10.0pt;mso-bidi-font-size:12.0pt;font-family:Symbol;mso-fareast-font-family:
 Symbol;mso-bidi-font-family:Symbol;mso-ansi-language:EN-US'><span
@@ -9117,7 +9172,7 @@
 color:black;mso-ansi-language:EN-US'>catching exceptions</span></code><span
 lang=EN-US style='mso-ansi-language:EN-US'><o:p></o:p></span></p>
 
-<p style='margin-left:36.0pt;text-indent:-18.0pt;mso-list:l19 level1 lfo22;
+<p style='margin-left:36.0pt;text-indent:-18.0pt;mso-list:l19 level1 lfo23;
 tab-stops:list 36.0pt'><![if !supportLists]><span lang=EN-US style='font-size:
 10.0pt;mso-bidi-font-size:12.0pt;font-family:Symbol;mso-fareast-font-family:
 Symbol;mso-bidi-font-family:Symbol;mso-ansi-language:EN-US'><span
@@ -9215,9 +9270,9 @@
 color:black;mso-ansi-language:EN-US'>process_event</span></code><code><span
 lang=EN-US style='font-size:10.0pt;color:black;mso-ansi-language:EN-US'> </span></code><code><span
 lang=EN-US style='mso-ansi-font-size:12.0pt;mso-bidi-font-size:12.0pt;
-font-family:"Times New Roman","serif";color:black;mso-ansi-language:EN-US'>can
-execute up to 4 times faster. On a Q6600, an average transition execution lasts
-45ns with a full state machine, 10ns in the minimal case.</span></code><span
+font-family:"Times New Roman","serif";color:black;mso-ansi-language:EN-US'>can execute
+up to 4 times faster. On a Q6600, an average transition execution lasts 45ns
+with a full state machine, 10ns in the minimal case.</span></code><span
 lang=EN-US style='mso-ansi-language:EN-US'><o:p></o:p></span></p>
 
 <h3 style='tab-stops:45.8pt 91.6pt 137.4pt 183.2pt 229.0pt 274.8pt 320.6pt 366.4pt 412.2pt 458.0pt 503.8pt 549.6pt 595.4pt 641.2pt 687.0pt 732.8pt'><a
@@ -9230,7 +9285,7 @@
 independent from back-ends and have therefore no such function. There are 3
 possible ways to do it:<o:p></o:p></span></p>
 
-<p class=MsoListParagraph style='text-indent:-18.0pt;mso-list:l6 level1 lfo23;
+<p class=MsoListParagraph style='text-indent:-18.0pt;mso-list:l6 level1 lfo24;
 tab-stops:45.8pt 91.6pt 137.4pt 183.2pt 229.0pt 274.8pt 320.6pt 366.4pt 412.2pt 458.0pt 503.8pt 549.6pt 595.4pt 641.2pt 687.0pt 732.8pt'><![if !supportLists]><span
 lang=EN-US style='font-family:Symbol;mso-fareast-font-family:Symbol;mso-bidi-font-family:
 Symbol;mso-ansi-language:EN-US'><span style='mso-list:Ignore'>·<span
@@ -9249,17 +9304,17 @@
 style='mso-spacerun:yes'>          
 </span>typedef msm::back::state_machine<player_ > player;<o:p></o:p></span></p>
 
-<p class=MsoListParagraphCxSpFirst style='text-indent:-18.0pt;mso-list:l6 level1 lfo23;
+<p class=MsoListParagraphCxSpFirst style='text-indent:-18.0pt;mso-list:l6 level1 lfo24;
 tab-stops:45.8pt 91.6pt 137.4pt 183.2pt 229.0pt 274.8pt 320.6pt 366.4pt 412.2pt 458.0pt 503.8pt 549.6pt 595.4pt 641.2pt 687.0pt 732.8pt'><![if !supportLists]><span
 lang=EN-US style='font-family:Symbol;mso-fareast-font-family:Symbol;mso-bidi-font-family:
 Symbol;mso-ansi-language:EN-US'><span style='mso-list:Ignore'>·<span
 style='font:7.0pt "Times New Roman"'>       </span></span></span><![endif]><span
 lang=EN-US style='mso-ansi-language:EN-US'>Use a functor “<a
-href="#_Functor_rows">Row</a>” transition. These rows offer an FSM
-template argument. This argument is the concrete (back-end) state machine on
-which process_event can be called.<o:p></o:p></span></p>
+href="#_Functor_rows">Row</a>” transition. These rows offer an FSM template
+argument. This argument is the concrete (back-end) state machine on which
+process_event can be called.<o:p></o:p></span></p>
 
-<p class=MsoListParagraphCxSpLast style='text-indent:-18.0pt;mso-list:l6 level1 lfo23;
+<p class=MsoListParagraphCxSpLast style='text-indent:-18.0pt;mso-list:l6 level1 lfo24;
 tab-stops:45.8pt 91.6pt 137.4pt 183.2pt 229.0pt 274.8pt 320.6pt 366.4pt 412.2pt 458.0pt 503.8pt 549.6pt 595.4pt 641.2pt 687.0pt 732.8pt'><![if !supportLists]><span
 lang=EN-US style='font-family:Symbol;mso-fareast-font-family:Symbol;mso-bidi-font-family:
 Symbol;mso-ansi-language:EN-US'><span style='mso-list:Ignore'>·<span
@@ -9320,8 +9375,8 @@
 back-end as forwarding object:<o:p></o:p></span></p>
 
 <p class=MsoNormal style='tab-stops:45.8pt 91.6pt 137.4pt 183.2pt 229.0pt 274.8pt 320.6pt 366.4pt 412.2pt 458.0pt 503.8pt 549.6pt 595.4pt 641.2pt 687.0pt 732.8pt'><span
-lang=EN-US style='font-family:"Courier New";mso-ansi-language:EN-US'>typedef
-msm::back::state_machine<player_ > player;<o:p></o:p></span></p>
+lang=EN-US style='font-family:"Courier New";mso-ansi-language:EN-US'>typedef msm::back::state_machine<player_
+> player;<o:p></o:p></span></p>
 
 <p class=MsoNormal style='tab-stops:45.8pt 91.6pt 137.4pt 183.2pt 229.0pt 274.8pt 320.6pt 366.4pt 412.2pt 458.0pt 503.8pt 549.6pt 595.4pt 641.2pt 687.0pt 732.8pt'><span
 lang=EN-US style='font-family:"Courier New";mso-ansi-language:EN-US'>player
@@ -9349,8 +9404,8 @@
 lang=EN-US style='mso-ansi-language:EN-US'>By default, all states derive from </span><span
 lang=EN-US style='font-family:"Courier New";mso-ansi-language:EN-US'>msm::default_base_state</span><span
 lang=EN-US style='mso-ansi-language:EN-US'>, which is neither polymorphic nor
-has any other useful purpose than to define a base for all states. The following
-part will describe the customization possibilities offered by Msm.<o:p></o:p></span></p>
+has any other useful purpose than to define a base for all states. The
+following part will describe the customization possibilities offered by Msm.<o:p></o:p></span></p>
 
 <h3 style='tab-stops:45.8pt 91.6pt 137.4pt 183.2pt 229.0pt 274.8pt 320.6pt 366.4pt 412.2pt 458.0pt 503.8pt 549.6pt 595.4pt 641.2pt 687.0pt 732.8pt'><a
 name="_User-defined_base_state"></a><code><span lang=EN-US style='mso-ansi-font-size:
@@ -9373,7 +9428,7 @@
 allowing the base state to be user-defined. To do this, you need two simple
 changes:<o:p></o:p></span></p>
 
-<p style='margin-left:36.0pt;text-indent:-18.0pt;mso-list:l33 level1 lfo24;
+<p style='margin-left:36.0pt;text-indent:-18.0pt;mso-list:l33 level1 lfo25;
 tab-stops:list 36.0pt'><![if !supportLists]><span lang=EN-US style='font-size:
 10.0pt;mso-bidi-font-size:12.0pt;font-family:Symbol;mso-fareast-font-family:
 Symbol;mso-bidi-font-family:Symbol;mso-ansi-language:EN-US'><span
@@ -9412,16 +9467,16 @@
 12.0pt;mso-bidi-font-size:12.0pt;color:black;mso-ansi-language:EN-US'>my_base_state</span></code><code><span
 lang=EN-US style='font-size:10.0pt;color:black;mso-ansi-language:EN-US'> </span></code><code><span
 lang=EN-US style='mso-ansi-font-size:12.0pt;mso-bidi-font-size:12.0pt;
-font-family:"Times New Roman","serif";color:black;mso-ansi-language:EN-US'>is
-your new base state. If it has a virtual function, your states become
-polymorphic. Msm also provides a default polymorphic base type for your
-convenience, </span></code><code><span lang=EN-US style='mso-ansi-font-size:
-12.0pt;mso-bidi-font-size:12.0pt;color:black;mso-ansi-language:EN-US'>msm::front::polymorphic_</span></code><code><span
+font-family:"Times New Roman","serif";color:black;mso-ansi-language:EN-US'>is your
+new base state. If it has a virtual function, your states become polymorphic.
+Msm also provides a default polymorphic base type for your convenience, </span></code><code><span
+lang=EN-US style='mso-ansi-font-size:12.0pt;mso-bidi-font-size:12.0pt;
+color:black;mso-ansi-language:EN-US'>msm::front::polymorphic_</span></code><code><span
 lang=EN-US style='mso-ansi-font-size:12.0pt;mso-bidi-font-size:12.0pt;
 color:#030003;mso-ansi-language:EN-US'>state</span></code><span lang=EN-US
 style='mso-ansi-language:EN-US'><o:p></o:p></span></p>
 
-<p style='margin-left:36.0pt;text-indent:-18.0pt;mso-list:l33 level1 lfo24;
+<p style='margin-left:36.0pt;text-indent:-18.0pt;mso-list:l33 level1 lfo25;
 tab-stops:list 36.0pt'><![if !supportLists]><span lang=EN-US style='font-size:
 10.0pt;mso-bidi-font-size:12.0pt;font-family:Symbol;mso-fareast-font-family:
 Symbol;mso-bidi-font-family:Symbol;mso-ansi-language:EN-US'><span
@@ -9882,7 +9937,7 @@
 <p class=MsoNormal style='tab-stops:45.8pt 91.6pt 137.4pt 183.2pt 229.0pt 274.8pt 320.6pt 366.4pt 412.2pt 458.0pt 503.8pt 549.6pt 595.4pt 641.2pt 687.0pt 732.8pt'><span
 lang=EN-US style='mso-ansi-language:EN-US'>These types have some disadvantages:<o:p></o:p></span></p>
 
-<p class=MsoListParagraphCxSpFirst style='text-indent:-18.0pt;mso-list:l21 level1 lfo25;
+<p class=MsoListParagraphCxSpFirst style='text-indent:-18.0pt;mso-list:l21 level1 lfo26;
 tab-stops:45.8pt 91.6pt 137.4pt 183.2pt 229.0pt 274.8pt 320.6pt 366.4pt 412.2pt 458.0pt 503.8pt 549.6pt 595.4pt 641.2pt 687.0pt 732.8pt'><![if !supportLists]><span
 lang=EN-US style='font-family:Symbol;mso-fareast-font-family:Symbol;mso-bidi-font-family:
 Symbol;mso-ansi-language:EN-US'><span style='mso-list:Ignore'>·<span
@@ -9890,14 +9945,14 @@
 lang=EN-US style='mso-ansi-language:EN-US'>They are more typing and information
 than we would wish. This means syntactic noise.<o:p></o:p></span></p>
 
-<p class=MsoListParagraphCxSpMiddle style='text-indent:-18.0pt;mso-list:l21 level1 lfo25;
+<p class=MsoListParagraphCxSpMiddle style='text-indent:-18.0pt;mso-list:l21 level1 lfo26;
 tab-stops:45.8pt 91.6pt 137.4pt 183.2pt 229.0pt 274.8pt 320.6pt 366.4pt 412.2pt 458.0pt 503.8pt 549.6pt 595.4pt 641.2pt 687.0pt 732.8pt'><![if !supportLists]><span
 lang=EN-US style='font-family:Symbol;mso-fareast-font-family:Symbol;mso-bidi-font-family:
 Symbol;mso-ansi-language:EN-US'><span style='mso-list:Ignore'>·<span
 style='font:7.0pt "Times New Roman"'>       </span></span></span><![endif]><span
 lang=EN-US style='mso-ansi-language:EN-US'>Function pointers are weird in C++.<o:p></o:p></span></p>
 
-<p class=MsoListParagraphCxSpMiddle style='text-indent:-18.0pt;mso-list:l21 level1 lfo25;
+<p class=MsoListParagraphCxSpMiddle style='text-indent:-18.0pt;mso-list:l21 level1 lfo26;
 tab-stops:45.8pt 91.6pt 137.4pt 183.2pt 229.0pt 274.8pt 320.6pt 366.4pt 412.2pt 458.0pt 503.8pt 549.6pt 595.4pt 641.2pt 687.0pt 732.8pt'><![if !supportLists]><span
 lang=EN-US style='font-family:Symbol;mso-fareast-font-family:Symbol;mso-bidi-font-family:
 Symbol;mso-ansi-language:EN-US'><span style='mso-list:Ignore'>·<span
@@ -9906,7 +9961,7 @@
 limited and does not allow for more variations of parameters (source state,
 target state, current state machine, etc.)<o:p></o:p></span></p>
 
-<p class=MsoListParagraphCxSpLast style='text-indent:-18.0pt;mso-list:l21 level1 lfo25;
+<p class=MsoListParagraphCxSpLast style='text-indent:-18.0pt;mso-list:l21 level1 lfo26;
 tab-stops:45.8pt 91.6pt 137.4pt 183.2pt 229.0pt 274.8pt 320.6pt 366.4pt 412.2pt 458.0pt 503.8pt 549.6pt 595.4pt 641.2pt 687.0pt 732.8pt'><![if !supportLists]><span
 lang=EN-US style='font-family:Symbol;mso-fareast-font-family:Symbol;mso-bidi-font-family:
 Symbol;mso-ansi-language:EN-US'><span style='mso-list:Ignore'>·<span
@@ -9974,10 +10029,8 @@
 mso-layout-grid-align:none;text-autospace:none'><span lang=EN-US
 style='font-size:10.0pt;font-family:"Courier New";mso-fareast-font-family:"Times New Roman";
 mso-ansi-language:EN-US;mso-no-proof:yes'><span
-style='mso-spacerun:yes'>                                          
-</span><span
-style='mso-spacerun:yes'>                   </span>,<span
-style='color:#030003'>DummyGuard</span><span
+style='mso-spacerun:yes'>                                                             
+</span>,<span style='color:#030003'>DummyGuard</span><span
 style='mso-spacerun:yes'>         
 </span>>,<o:p></o:p></span></p>
 
@@ -10027,8 +10080,9 @@
 style='mso-spacerun:yes'>   </span>< <span style='color:#030003'>Open</span><span
 style='mso-spacerun:yes'>    </span>, <span style='color:#030003'>open_close</span><span
 style='mso-spacerun:yes'>  </span>, <span style='color:#030003'>Empty</span><span
-style='mso-spacerun:yes'>   </span>, <span style='color:#030003'>close_drawer</span><span
-style='mso-spacerun:yes'>        </span>, <span
+style='mso-spacerun:yes'>   </span>, <span style='color:#030003'>close_drawer</span>
+<span
+style='mso-spacerun:yes'>       </span>, <span
 style='color:#030003'>none</span><span
 style='mso-spacerun:yes'>                
 </span>>,<o:p></o:p></span></p>
@@ -10094,7 +10148,7 @@
 <p class=MsoNormal style='tab-stops:45.8pt 91.6pt 137.4pt 183.2pt 229.0pt 274.8pt 320.6pt 366.4pt 412.2pt 458.0pt 503.8pt 549.6pt 595.4pt 641.2pt 687.0pt 732.8pt'><span
 lang=EN-US style='mso-ansi-language:EN-US'>In a nutshell, what is all this?<o:p></o:p></span></p>
 
-<p class=MsoListParagraphCxSpFirst style='text-indent:-18.0pt;mso-list:l15 level1 lfo26;
+<p class=MsoListParagraphCxSpFirst style='text-indent:-18.0pt;mso-list:l15 level1 lfo27;
 tab-stops:45.8pt 91.6pt 137.4pt 183.2pt 229.0pt 274.8pt 320.6pt 366.4pt 412.2pt 458.0pt 503.8pt 549.6pt 595.4pt 641.2pt 687.0pt 732.8pt'><![if !supportLists]><span
 lang=EN-US style='font-family:Symbol;mso-fareast-font-family:Symbol;mso-bidi-font-family:
 Symbol;mso-ansi-language:EN-US'><span style='mso-list:Ignore'>·<span
@@ -10104,7 +10158,7 @@
 href="#_Anonymous_transitions">anonymous transitions</a>) is needed, write
 “none”.<o:p></o:p></span></p>
 
-<p class=MsoListParagraphCxSpMiddle style='text-indent:-18.0pt;mso-list:l15 level1 lfo26;
+<p class=MsoListParagraphCxSpMiddle style='text-indent:-18.0pt;mso-list:l15 level1 lfo27;
 tab-stops:45.8pt 91.6pt 137.4pt 183.2pt 229.0pt 274.8pt 320.6pt 366.4pt 412.2pt 458.0pt 503.8pt 549.6pt 595.4pt 641.2pt 687.0pt 732.8pt'><![if !supportLists]><span
 lang=EN-US style='font-family:Symbol;mso-fareast-font-family:Symbol;mso-bidi-font-family:
 Symbol;mso-ansi-language:EN-US'><span style='mso-list:Ignore'>·<span
@@ -10112,16 +10166,16 @@
 lang=EN-US style='mso-ansi-language:EN-US'>You can mix new rows with the old
 g_row, a_row, etc.<o:p></o:p></span></p>
 
-<p class=MsoListParagraphCxSpMiddle style='text-indent:-18.0pt;mso-list:l15 level1 lfo26;
+<p class=MsoListParagraphCxSpMiddle style='text-indent:-18.0pt;mso-list:l15 level1 lfo27;
 tab-stops:45.8pt 91.6pt 137.4pt 183.2pt 229.0pt 274.8pt 320.6pt 366.4pt 412.2pt 458.0pt 503.8pt 549.6pt 595.4pt 641.2pt 687.0pt 732.8pt'><![if !supportLists]><span
 lang=EN-US style='font-family:Symbol;mso-fareast-font-family:Symbol;mso-bidi-font-family:
 Symbol;mso-ansi-language:EN-US'><span style='mso-list:Ignore'>·<span
 style='font:7.0pt "Times New Roman"'>       </span></span></span><![endif]><span
-lang=EN-US style='mso-ansi-language:EN-US'>“Row” allows reusing
-your functors in other state machines. State machine function pointers cannot
-offer this easily.<o:p></o:p></span></p>
+lang=EN-US style='mso-ansi-language:EN-US'>“Row” allows reusing your
+functors in other state machines. State machine function pointers cannot offer
+this easily.<o:p></o:p></span></p>
 
-<p class=MsoListParagraphCxSpLast style='text-indent:-18.0pt;mso-list:l15 level1 lfo26;
+<p class=MsoListParagraphCxSpLast style='text-indent:-18.0pt;mso-list:l15 level1 lfo27;
 tab-stops:45.8pt 91.6pt 137.4pt 183.2pt 229.0pt 274.8pt 320.6pt 366.4pt 412.2pt 458.0pt 503.8pt 549.6pt 595.4pt 641.2pt 687.0pt 732.8pt'><![if !supportLists]><span
 lang=EN-US style='font-family:Symbol;mso-fareast-font-family:Symbol;mso-bidi-font-family:
 Symbol;mso-ansi-language:EN-US'><span style='mso-list:Ignore'>·<span
@@ -10209,9 +10263,8 @@
 "Times New Roman";mso-ansi-language:EN-US;mso-no-proof:yes'><o:p> </o:p></span></p>
 
 <p class=MsoNormal style='tab-stops:45.8pt 91.6pt 137.4pt 183.2pt 229.0pt 274.8pt 320.6pt 366.4pt 412.2pt 458.0pt 503.8pt 549.6pt 595.4pt 641.2pt 687.0pt 732.8pt'><span
-lang=EN-US style='mso-ansi-language:EN-US'>It is a functor object taking as
-template arguments, the back-end state machine, event, and source and target
-states. <o:p></o:p></span></p>
+lang=EN-US style='mso-ansi-language:EN-US'>It is a functor object taking as template
+arguments, the back-end state machine, event, and source and target states. <o:p></o:p></span></p>
 
 <p class=MsoNormal style='tab-stops:45.8pt 91.6pt 137.4pt 183.2pt 229.0pt 274.8pt 320.6pt 366.4pt 412.2pt 458.0pt 503.8pt 549.6pt 595.4pt 641.2pt 687.0pt 732.8pt'><span
 lang=EN-US style='mso-ansi-language:EN-US'>Notice how the functor places a new
@@ -10311,11 +10364,11 @@
 actions, guards, flags, attributes, deferred events, initial states.<o:p></o:p></span></p>
 
 <p style='margin-bottom:0cm;margin-bottom:.0001pt;tab-stops:45.8pt 91.6pt 137.4pt 183.2pt 229.0pt 274.8pt 320.6pt 366.4pt 412.2pt 458.0pt 503.8pt 549.6pt 595.4pt 641.2pt 687.0pt 732.8pt'><span
-lang=EN-US style='color:black;mso-ansi-language:EN-US'>It also relies on Boost.Typeof
-as a wrapper around the new decltype C++0x feature to provide a compile-time
-evaluation of all the grammars. Unfortunately, all the underlying Boost
-libraries are not Typeof-enabled, so for the moment, you will need a compiler
-where Typeof is natively implemented (like VC8-9-10, g++ >= 4.3)<o:p></o:p></span></p>
+lang=EN-US style='color:black;mso-ansi-language:EN-US'>It also relies on
+Boost.Typeof as a wrapper around the new decltype C++0x feature to provide a
+compile-time evaluation of all the grammars. Unfortunately, all the underlying
+Boost libraries are not Typeof-enabled, so for the moment, you will need a
+compiler where Typeof is natively implemented (like VC8-9-10, g++ >= 4.3)<o:p></o:p></span></p>
 
 <p style='margin-bottom:0cm;margin-bottom:.0001pt;tab-stops:45.8pt 91.6pt 137.4pt 183.2pt 229.0pt 274.8pt 320.6pt 366.4pt 412.2pt 458.0pt 503.8pt 549.6pt 595.4pt 641.2pt 687.0pt 732.8pt'><span
 lang=EN-US style='color:black;mso-ansi-language:EN-US'>To play with grammars,
@@ -10323,7 +10376,7 @@
 actors (states, events, actions) of state machines proto terminals:<o:p></o:p></span></p>
 
 <p style='margin-top:5.0pt;margin-right:0cm;margin-bottom:0cm;margin-left:36.0pt;
-margin-bottom:.0001pt;text-indent:-18.0pt;mso-list:l42 level1 lfo27;tab-stops:
+margin-bottom:.0001pt;text-indent:-18.0pt;mso-list:l42 level1 lfo28;tab-stops:
 45.8pt 91.6pt 137.4pt 183.2pt 229.0pt 274.8pt 320.6pt 366.4pt 412.2pt 458.0pt 503.8pt 549.6pt 595.4pt 641.2pt 687.0pt 732.8pt'><![if !supportLists]><span
 lang=EN-US style='mso-fareast-font-family:"Times New Roman";color:black;
 mso-ansi-language:EN-US'><span style='mso-list:Ignore'>-<span style='font:7.0pt "Times New Roman"'>       
@@ -10336,7 +10389,7 @@
 mso-ansi-language:EN-US'> function (described later)<o:p></o:p></span></p>
 
 <p style='margin-top:5.0pt;margin-right:0cm;margin-bottom:0cm;margin-left:36.0pt;
-margin-bottom:.0001pt;text-indent:-18.0pt;mso-list:l42 level1 lfo27;tab-stops:
+margin-bottom:.0001pt;text-indent:-18.0pt;mso-list:l42 level1 lfo28;tab-stops:
 45.8pt 91.6pt 137.4pt 183.2pt 229.0pt 274.8pt 320.6pt 366.4pt 412.2pt 458.0pt 503.8pt 549.6pt 595.4pt 641.2pt 687.0pt 732.8pt'><![if !supportLists]><span
 lang=EN-US style='mso-fareast-font-family:"Times New Roman";color:black;
 mso-ansi-language:EN-US'><span style='mso-list:Ignore'>-<span style='font:7.0pt "Times New Roman"'>       
@@ -10346,7 +10399,7 @@
 lang=EN-US style='color:black;mso-ansi-language:EN-US'><o:p></o:p></span></p>
 
 <p style='margin-top:5.0pt;margin-right:0cm;margin-bottom:0cm;margin-left:36.0pt;
-margin-bottom:.0001pt;text-indent:-18.0pt;mso-list:l42 level1 lfo27;tab-stops:
+margin-bottom:.0001pt;text-indent:-18.0pt;mso-list:l42 level1 lfo28;tab-stops:
 45.8pt 91.6pt 137.4pt 183.2pt 229.0pt 274.8pt 320.6pt 366.4pt 412.2pt 458.0pt 503.8pt 549.6pt 595.4pt 641.2pt 687.0pt 732.8pt'><![if !supportLists]><span
 lang=EN-US style='mso-fareast-font-family:"Times New Roman";color:black;
 mso-ansi-language:EN-US'><span style='mso-list:Ignore'>-<span style='font:7.0pt "Times New Roman"'>       
@@ -10356,7 +10409,7 @@
 lang=EN-US style='color:black;mso-ansi-language:EN-US'><o:p></o:p></span></p>
 
 <p style='margin-top:5.0pt;margin-right:0cm;margin-bottom:0cm;margin-left:36.0pt;
-margin-bottom:.0001pt;text-indent:-18.0pt;mso-list:l42 level1 lfo27;tab-stops:
+margin-bottom:.0001pt;text-indent:-18.0pt;mso-list:l42 level1 lfo28;tab-stops:
 45.8pt 91.6pt 137.4pt 183.2pt 229.0pt 274.8pt 320.6pt 366.4pt 412.2pt 458.0pt 503.8pt 549.6pt 595.4pt 641.2pt 687.0pt 732.8pt'><![if !supportLists]><span
 lang=EN-US style='mso-fareast-font-family:"Times New Roman";color:black;
 mso-ansi-language:EN-US'><span style='mso-list:Ignore'>-<span style='font:7.0pt "Times New Roman"'>       
@@ -10366,8 +10419,8 @@
 lang=EN-US style='color:black;mso-ansi-language:EN-US'><o:p></o:p></span></p>
 
 <p style='margin-bottom:0cm;margin-bottom:.0001pt;tab-stops:45.8pt 91.6pt 137.4pt 183.2pt 229.0pt 274.8pt 320.6pt 366.4pt 412.2pt 458.0pt 503.8pt 549.6pt 595.4pt 641.2pt 687.0pt 732.8pt'><span
-lang=EN-US style='color:black;mso-ansi-language:EN-US'>Examples will be
-provided in the next paragraphs. The basic eUML features can be found in:<o:p></o:p></span></p>
+lang=EN-US style='color:black;mso-ansi-language:EN-US'>Examples will be provided
+in the next paragraphs. The basic eUML features can be found in:<o:p></o:p></span></p>
 
 <p class=MsoNormal style='margin-top:12.0pt;margin-right:36.45pt;margin-bottom:
 0cm;margin-left:36.45pt;margin-bottom:.0001pt;tab-stops:45.8pt 91.6pt 137.4pt 183.2pt 229.0pt 274.8pt 320.6pt 366.4pt 412.2pt 458.0pt 503.8pt 549.6pt 595.4pt 641.2pt 687.0pt 732.8pt'><span
@@ -10416,11 +10469,9 @@
 mso-layout-grid-align:none;text-autospace:none'><span lang=EN-US
 style='font-size:10.0pt;font-family:"Courier New";mso-fareast-font-family:"Times New Roman";
 mso-ansi-language:EN-US;mso-no-proof:yes'><span
-style='mso-spacerun:yes'>    </span><span
-style='mso-spacerun:yes'>  </span><span style='color:#030003'>Stopped</span>()
-+ <span style='color:#030003'>play</span>()<span
-style='mso-spacerun:yes'>  </span><span
-style='mso-spacerun:yes'>    </span>[DummyGuard()] /
+style='mso-spacerun:yes'>      </span><span
+style='color:#030003'>Stopped</span>() + <span style='color:#030003'>play</span>()<span
+style='mso-spacerun:yes'>      </span>[DummyGuard()] /
 (TestFct(),<span style='color:#030003'>start_playback</span>())<span
 style='mso-tab-count:1'>   </span>== <span style='color:#030003'>Playing</span>()<span
 style='mso-spacerun:yes'>  </span><span style='mso-tab-count:1'> </span>,<o:p></o:p></span></p>
@@ -10432,7 +10483,7 @@
 style='mso-spacerun:yes'>      </span><span
 style='color:#030003'>Stopped</span>() + <span style='color:#030003'>open_close</span>()/
 <span style='color:#030003'>open_drawer</span>() <span style='mso-tab-count:
-1'>       </span><span style='mso-tab-count:2'>               </span><span
+3'>                       </span><span
 style='mso-tab-count:1'>        </span>== <span
 style='color:#030003'>Open</span>()<span
 style='mso-spacerun:yes'>     </span><span
@@ -10467,8 +10518,8 @@
 <span style='color:#030003'>close_drawer</span>() <span style='mso-tab-count:
 3'>                      </span><span
 style='mso-tab-count:1'>        </span>== <span
-style='color:#030003'>Empty</span>()<span
-style='mso-spacerun:yes'>    </span><span style='mso-tab-count:
+style='color:#030003'>Empty</span>() <span
+style='mso-spacerun:yes'>   </span><span style='mso-tab-count:
 1'> </span>,<o:p></o:p></span></p>
 
 <p class=MsoNormal style='tab-stops:45.8pt 91.6pt 137.4pt 183.2pt 229.0pt 274.8pt 320.6pt 366.4pt 412.2pt 458.0pt 503.8pt 549.6pt 595.4pt 641.2pt 687.0pt 732.8pt;
@@ -10508,8 +10559,10 @@
 mso-layout-grid-align:none;text-autospace:none'><span lang=EN-US
 style='font-size:10.0pt;font-family:"Courier New";mso-fareast-font-family:"Times New Roman";
 mso-ansi-language:EN-US;mso-no-proof:yes'><span
-style='mso-spacerun:yes'>     </span><span
-style='color:green'>//<span style='mso-spacerun:yes'>  </span>+------------------------------------------------------------------------------+<o:p></o:p></span></span></p>
+style='mso-spacerun:yes'>    </span><span
+style='mso-spacerun:yes'> </span><span style='color:green'>//<span
+style='mso-spacerun:yes'> 
+</span>+------------------------------------------------------------------------------+<o:p></o:p></span></span></p>
 
 <p class=MsoNormal style='tab-stops:45.8pt 91.6pt 137.4pt 183.2pt 229.0pt 274.8pt 320.6pt 366.4pt 412.2pt 458.0pt 503.8pt 549.6pt 595.4pt 641.2pt 687.0pt 732.8pt;
 mso-layout-grid-align:none;text-autospace:none'><span lang=EN-US
@@ -10555,13 +10608,11 @@
 mso-layout-grid-align:none;text-autospace:none'><span lang=EN-US
 style='font-size:10.0pt;font-family:"Courier New";mso-fareast-font-family:"Times New Roman";
 mso-ansi-language:EN-US;mso-no-proof:yes'><span
-style='mso-spacerun:yes'>    </span><span
-style='mso-spacerun:yes'>  </span><span style='color:#030003'>Playing</span>()
-== <span style='color:#030003'>Stopped</span>() + <span style='color:#030003'>play</span>()<span
-style='mso-spacerun:yes'>  </span><span
-style='mso-spacerun:yes'>    </span><span
-style='mso-spacerun:yes'> </span>[DummyGuard()] / (TestFct(),<span
-style='color:#030003'>start_playback</span>())<span
+style='mso-spacerun:yes'>      </span><span
+style='color:#030003'>Playing</span>() == <span style='color:#030003'>Stopped</span>()
++ <span style='color:#030003'>play</span>()<span
+style='mso-spacerun:yes'>      
+</span>[DummyGuard()] / (TestFct(),<span style='color:#030003'>start_playback</span>())<span
 style='mso-spacerun:yes'>  </span>,<o:p></o:p></span></p>
 
 <p class=MsoNormal style='tab-stops:45.8pt 91.6pt 137.4pt 183.2pt 229.0pt 274.8pt 320.6pt 366.4pt 412.2pt 458.0pt 503.8pt 549.6pt 595.4pt 641.2pt 687.0pt 732.8pt;
@@ -10572,7 +10623,7 @@
 style='color:#030003'>Open</span>()<span
 style='mso-spacerun:yes'>    </span>== <span style='color:#030003'>Stopped</span>()
 + <span style='color:#030003'>open_close</span>() /<span style='color:#030003'>open_drawer</span>()
-<span style='mso-tab-count:1'>  </span><span style='mso-tab-count:2'>              </span><span
+<span style='mso-tab-count:3'>                </span><span
 style='mso-tab-count:1'>        </span>,<o:p></o:p></span></p>
 
 <p class=MsoNormal style='tab-stops:45.8pt 91.6pt 137.4pt 183.2pt 229.0pt 274.8pt 320.6pt 366.4pt 412.2pt 458.0pt 503.8pt 549.6pt 595.4pt 641.2pt 687.0pt 732.8pt;
@@ -10611,8 +10662,7 @@
 style='font-size:10.0pt;font-family:"Courier New";mso-fareast-font-family:"Times New Roman";
 mso-ansi-language:EN-US;mso-no-proof:yes'><span
 style='mso-spacerun:yes'>      </span><span
-style='color:green'>//<span style='mso-spacerun:yes'> 
-</span>+------------------------------------------------------------------------------+<o:p></o:p></span></span></p>
+style='color:green'>//<span style='mso-spacerun:yes'>  </span>+------------------------------------------------------------------------------+<o:p></o:p></span></span></p>
 
 <p class=MsoNormal style='tab-stops:45.8pt 91.6pt 137.4pt 183.2pt 229.0pt 274.8pt 320.6pt 366.4pt 412.2pt 458.0pt 503.8pt 549.6pt 595.4pt 641.2pt 687.0pt 732.8pt;
 mso-layout-grid-align:none;text-autospace:none'><span lang=EN-US
@@ -10641,7 +10691,8 @@
 style='font-size:10.0pt;font-family:"Courier New";mso-fareast-font-family:"Times New Roman";
 mso-ansi-language:EN-US;mso-no-proof:yes'><span
 style='mso-spacerun:yes'>     </span><span
-style='color:green'>//<span style='mso-spacerun:yes'>  </span>+------------------------------------------------------------------------------+<o:p></o:p></span></span></p>
+style='color:green'>//<span style='mso-spacerun:yes'> 
+</span>+------------------------------------------------------------------------------+<o:p></o:p></span></span></p>
 
 <p class=MsoNormal style='tab-stops:45.8pt 91.6pt 137.4pt 183.2pt 229.0pt 274.8pt 320.6pt 366.4pt 412.2pt 458.0pt 503.8pt 549.6pt 595.4pt 641.2pt 687.0pt 732.8pt;
 mso-layout-grid-align:none;text-autospace:none'><span lang=EN-US
@@ -10792,8 +10843,8 @@
 
 <p style='margin-bottom:0cm;margin-bottom:.0001pt;tab-stops:45.8pt 91.6pt 137.4pt 183.2pt 229.0pt 274.8pt 320.6pt 366.4pt 412.2pt 458.0pt 503.8pt 549.6pt 595.4pt 641.2pt 687.0pt 732.8pt'><span
 lang=EN-US style='mso-ansi-language:EN-US'>The only differences with our
-previous functors is that they return a bool (guards are in UML actions returning
-a bool and producing no side-effect), and they must inherit from </span><span
+previous functors is that they return a bool (guards are in UML actions
+returning a bool and producing no side-effect), and they must inherit from </span><span
 lang=EN-US style='font-family:"Courier New";mso-ansi-language:EN-US'>euml_action</span><span
 lang=EN-US style='mso-ansi-language:EN-US'> in order to enable the grammar. The
 same is also necessary for events which must inherit from euml_event:<o:p></o:p></span></p>
@@ -10830,8 +10881,8 @@
 lang=EN-US style='mso-ansi-language:EN-US'><o:p></o:p></span></p>
 
 <p style='margin-bottom:0cm;margin-bottom:.0001pt;tab-stops:45.8pt 91.6pt 137.4pt 183.2pt 229.0pt 274.8pt 320.6pt 366.4pt 412.2pt 458.0pt 503.8pt 549.6pt 595.4pt 641.2pt 687.0pt 732.8pt'><span
-lang=EN-US style='mso-ansi-language:EN-US'>This means that Empty is defined as
-a state with an entry action made of two sub-actions, </span><span lang=EN-US
+lang=EN-US style='mso-ansi-language:EN-US'>This means that Empty is defined as a
+state with an entry action made of two sub-actions, </span><span lang=EN-US
 style='font-family:"Courier New";mso-ansi-language:EN-US'>Empty_Entry</span><span
 lang=EN-US style='mso-ansi-language:EN-US'> and </span><span lang=EN-US
 style='font-family:"Courier New";mso-ansi-language:EN-US'>Dummy_Entry </span><span
@@ -10924,9 +10975,9 @@
 “/” symbol).<o:p></o:p></span></p>
 
 <p style='margin-bottom:0cm;margin-bottom:.0001pt;tab-stops:45.8pt 91.6pt 137.4pt 183.2pt 229.0pt 274.8pt 320.6pt 366.4pt 412.2pt 458.0pt 503.8pt 549.6pt 595.4pt 641.2pt 687.0pt 732.8pt'><span
-lang=EN-US style='mso-ansi-language:EN-US'>The state functors have a slightly
-different signature as there is no source and target state but only a current
-state (entry/exit actions are transition-independent), for example:<o:p></o:p></span></p>
+lang=EN-US style='mso-ansi-language:EN-US'>The state functors have a slightly different
+signature as there is no source and target state but only a current state
+(entry/exit actions are transition-independent), for example:<o:p></o:p></span></p>
 
 <p style='margin-bottom:0cm;margin-bottom:.0001pt;tab-stops:45.8pt 91.6pt 137.4pt 183.2pt 229.0pt 274.8pt 320.6pt 366.4pt 412.2pt 458.0pt 503.8pt 549.6pt 595.4pt 641.2pt 687.0pt 732.8pt'><span
 lang=EN-US style='mso-ansi-language:EN-US'><o:p> </o:p></span></p>
@@ -10996,8 +11047,8 @@
 lang=EN-US style='mso-ansi-language:EN-US'><o:p> </o:p></span></p>
 
 <p style='margin-bottom:0cm;margin-bottom:.0001pt;tab-stops:45.8pt 91.6pt 137.4pt 183.2pt 229.0pt 274.8pt 320.6pt 366.4pt 412.2pt 458.0pt 503.8pt 549.6pt 595.4pt 641.2pt 687.0pt 732.8pt'><span
-lang=EN-US style='mso-ansi-language:EN-US'>Likewise, eUML provides other state-building
-functions for other types of states:<o:p></o:p></span></p>
+lang=EN-US style='mso-ansi-language:EN-US'>Likewise, eUML provides other
+state-building functions for other types of states:<o:p></o:p></span></p>
 
 <p style='margin-bottom:0cm;margin-bottom:.0001pt;tab-stops:45.8pt 91.6pt 137.4pt 183.2pt 229.0pt 274.8pt 320.6pt 366.4pt 412.2pt 458.0pt 503.8pt 549.6pt 595.4pt 641.2pt 687.0pt 732.8pt'><span
 lang=EN-US style='font-family:"Courier New";mso-fareast-font-family:"Times New Roman";
@@ -11075,9 +11126,9 @@
 
 <p style='margin-bottom:0cm;margin-bottom:.0001pt;tab-stops:45.8pt 91.6pt 137.4pt 183.2pt 229.0pt 274.8pt 320.6pt 366.4pt 412.2pt 458.0pt 503.8pt 549.6pt 595.4pt 641.2pt 687.0pt 732.8pt'><span
 lang=EN-US style='mso-ansi-language:EN-US'>Sometimes you might want to define
-the same way a state machine on the fly (if, for example, you need to provide
-an on_entry/on_exit for this state machine as a functor). For this, there is
-also a function, </span><span lang=EN-US style='font-family:"Courier New";
+the same way a state machine on the fly (if, for example, you need to provide an
+on_entry/on_exit for this state machine as a functor). For this, there is also
+a function, </span><span lang=EN-US style='font-family:"Courier New";
 mso-ansi-language:EN-US'>build_sm</span><span lang=EN-US style='mso-ansi-language:
 EN-US'>, which has up to 8 arguments:<o:p></o:p></span></p>
 
@@ -11627,10 +11678,10 @@
 
 <p class=MsoNormal style='tab-stops:45.8pt 91.6pt 137.4pt 183.2pt 229.0pt 274.8pt 320.6pt 366.4pt 412.2pt 458.0pt 503.8pt 549.6pt 595.4pt 641.2pt 687.0pt 732.8pt'><span
 lang=EN-US style='mso-fareast-font-family:"Times New Roman";mso-ansi-language:
-EN-US;mso-no-proof:yes'>A fork is a direct entry into several
-regions of a composite substate. EUML also supports this by allowing the user
-to define a list of entry states separated by a comma and enclosed inside
-parenthesis, for eaxample:<o:p></o:p></span></p>
+EN-US;mso-no-proof:yes'>A fork is a direct entry into
+several regions of a composite substate. EUML also supports this by allowing
+the user to define a list of entry states separated by a comma and enclosed
+inside parenthesis, for eaxample:<o:p></o:p></span></p>
 
 <p class=MsoNormal style='tab-stops:45.8pt 91.6pt 137.4pt 183.2pt 229.0pt 274.8pt 320.6pt 366.4pt 412.2pt 458.0pt 503.8pt 549.6pt 595.4pt 641.2pt 687.0pt 732.8pt'><span
 lang=EN-US style='mso-fareast-font-family:"Times New Roman";mso-ansi-language:
@@ -11702,7 +11753,7 @@
 “Empty” containing 3 attributes:<o:p></o:p></span></p>
 
 <p style='margin-top:5.0pt;margin-right:0cm;margin-bottom:0cm;margin-left:36.0pt;
-margin-bottom:.0001pt;text-indent:-18.0pt;mso-list:l32 level1 lfo28;tab-stops:
+margin-bottom:.0001pt;text-indent:-18.0pt;mso-list:l32 level1 lfo29;tab-stops:
 45.8pt 91.6pt 137.4pt 183.2pt 229.0pt 274.8pt 320.6pt 366.4pt 412.2pt 458.0pt 503.8pt 549.6pt 595.4pt 641.2pt 687.0pt 732.8pt'><![if !supportLists]><span
 lang=EN-US style='font-family:Symbol;mso-fareast-font-family:Symbol;mso-bidi-font-family:
 Symbol;mso-ansi-language:EN-US'><span style='mso-list:Ignore'>·<span
@@ -11710,7 +11761,7 @@
 lang=EN-US style='mso-ansi-language:EN-US'>An int, at index 0<o:p></o:p></span></p>
 
 <p style='margin-top:5.0pt;margin-right:0cm;margin-bottom:0cm;margin-left:36.0pt;
-margin-bottom:.0001pt;text-indent:-18.0pt;mso-list:l32 level1 lfo28;tab-stops:
+margin-bottom:.0001pt;text-indent:-18.0pt;mso-list:l32 level1 lfo29;tab-stops:
 45.8pt 91.6pt 137.4pt 183.2pt 229.0pt 274.8pt 320.6pt 366.4pt 412.2pt 458.0pt 503.8pt 549.6pt 595.4pt 641.2pt 687.0pt 732.8pt'><![if !supportLists]><span
 lang=EN-US style='font-family:Symbol;mso-fareast-font-family:Symbol;mso-bidi-font-family:
 Symbol;mso-ansi-language:EN-US'><span style='mso-list:Ignore'>·<span
@@ -11718,7 +11769,7 @@
 lang=EN-US style='mso-ansi-language:EN-US'>A std::map<int,int> at index 1<o:p></o:p></span></p>
 
 <p style='margin-top:5.0pt;margin-right:0cm;margin-bottom:0cm;margin-left:36.0pt;
-margin-bottom:.0001pt;text-indent:-18.0pt;mso-list:l32 level1 lfo28;tab-stops:
+margin-bottom:.0001pt;text-indent:-18.0pt;mso-list:l32 level1 lfo29;tab-stops:
 45.8pt 91.6pt 137.4pt 183.2pt 229.0pt 274.8pt 320.6pt 366.4pt 412.2pt 458.0pt 503.8pt 549.6pt 595.4pt 641.2pt 687.0pt 732.8pt'><![if !supportLists]><span
 lang=EN-US style='font-family:Symbol;mso-fareast-font-family:Symbol;mso-bidi-font-family:
 Symbol;mso-ansi-language:EN-US'><span style='mso-list:Ignore'>·<span
@@ -11819,11 +11870,11 @@
 lang=EN-US style='mso-ansi-language:EN-US'><o:p></o:p></span></p>
 
 <p style='margin-bottom:0cm;margin-bottom:.0001pt;tab-stops:45.8pt 91.6pt 137.4pt 183.2pt 229.0pt 274.8pt 320.6pt 366.4pt 412.2pt 458.0pt 503.8pt 549.6pt 595.4pt 641.2pt 687.0pt 732.8pt'><span
-lang=EN-US style='mso-ansi-language:EN-US'>We can now reference these
-attributes in our grammar. To this aim, eUML provides several functors:<o:p></o:p></span></p>
+lang=EN-US style='mso-ansi-language:EN-US'>We can now reference these attributes
+in our grammar. To this aim, eUML provides several functors:<o:p></o:p></span></p>
 
 <p style='margin-top:5.0pt;margin-right:0cm;margin-bottom:0cm;margin-left:36.0pt;
-margin-bottom:.0001pt;text-indent:-18.0pt;mso-list:l40 level1 lfo29;tab-stops:
+margin-bottom:.0001pt;text-indent:-18.0pt;mso-list:l40 level1 lfo30;tab-stops:
 45.8pt 91.6pt 137.4pt 183.2pt 229.0pt 274.8pt 320.6pt 366.4pt 412.2pt 458.0pt 503.8pt 549.6pt 595.4pt 641.2pt 687.0pt 732.8pt'><![if !supportLists]><span
 lang=EN-US style='font-family:Symbol;mso-fareast-font-family:Symbol;mso-bidi-font-family:
 Symbol;mso-ansi-language:EN-US'><span style='mso-list:Ignore'>·<span
@@ -11846,7 +11897,7 @@
 lang=EN-US style='mso-ansi-language:EN-US'><o:p></o:p></span></p>
 
 <p style='margin-top:5.0pt;margin-right:0cm;margin-bottom:0cm;margin-left:36.0pt;
-margin-bottom:.0001pt;text-indent:-18.0pt;mso-list:l40 level1 lfo29;tab-stops:
+margin-bottom:.0001pt;text-indent:-18.0pt;mso-list:l40 level1 lfo30;tab-stops:
 45.8pt 91.6pt 137.4pt 183.2pt 229.0pt 274.8pt 320.6pt 366.4pt 412.2pt 458.0pt 503.8pt 549.6pt 595.4pt 641.2pt 687.0pt 732.8pt'><![if !supportLists]><span
 lang=EN-US style='font-family:Symbol;mso-fareast-font-family:Symbol;mso-bidi-font-family:
 Symbol;mso-ansi-language:EN-US'><span style='mso-list:Ignore'>·<span
@@ -11861,7 +11912,7 @@
 state. </span><span lang=EN-US style='mso-ansi-language:EN-US'><o:p></o:p></span></p>
 
 <p style='margin-top:5.0pt;margin-right:0cm;margin-bottom:0cm;margin-left:36.0pt;
-margin-bottom:.0001pt;text-indent:-18.0pt;mso-list:l40 level1 lfo29;tab-stops:
+margin-bottom:.0001pt;text-indent:-18.0pt;mso-list:l40 level1 lfo30;tab-stops:
 45.8pt 91.6pt 137.4pt 183.2pt 229.0pt 274.8pt 320.6pt 366.4pt 412.2pt 458.0pt 503.8pt 549.6pt 595.4pt 641.2pt 687.0pt 732.8pt'><![if !supportLists]><span
 lang=EN-US style='font-family:Symbol;mso-fareast-font-family:Symbol;mso-bidi-font-family:
 Symbol;mso-ansi-language:EN-US'><span style='mso-list:Ignore'>·<span
@@ -11876,7 +11927,7 @@
 state. </span><span lang=EN-US style='mso-ansi-language:EN-US'><o:p></o:p></span></p>
 
 <p style='margin-top:5.0pt;margin-right:0cm;margin-bottom:0cm;margin-left:36.0pt;
-margin-bottom:.0001pt;text-indent:-18.0pt;mso-list:l40 level1 lfo29;tab-stops:
+margin-bottom:.0001pt;text-indent:-18.0pt;mso-list:l40 level1 lfo30;tab-stops:
 45.8pt 91.6pt 137.4pt 183.2pt 229.0pt 274.8pt 320.6pt 366.4pt 412.2pt 458.0pt 503.8pt 549.6pt 595.4pt 641.2pt 687.0pt 732.8pt'><![if !supportLists]><span
 lang=EN-US style='font-family:Symbol;mso-fareast-font-family:Symbol;mso-bidi-font-family:
 Symbol;mso-ansi-language:EN-US'><span style='mso-list:Ignore'>·<span
@@ -11894,7 +11945,7 @@
 mso-no-proof:yes'>.</span><span lang=EN-US style='mso-ansi-language:EN-US'><o:p></o:p></span></p>
 
 <p style='margin-top:5.0pt;margin-right:0cm;margin-bottom:0cm;margin-left:36.0pt;
-margin-bottom:.0001pt;text-indent:-18.0pt;mso-list:l40 level1 lfo29;tab-stops:
+margin-bottom:.0001pt;text-indent:-18.0pt;mso-list:l40 level1 lfo30;tab-stops:
 45.8pt 91.6pt 137.4pt 183.2pt 229.0pt 274.8pt 320.6pt 366.4pt 412.2pt 458.0pt 503.8pt 549.6pt 595.4pt 641.2pt 687.0pt 732.8pt'><![if !supportLists]><span
 lang=EN-US style='font-family:Symbol;mso-fareast-font-family:Symbol;mso-bidi-font-family:
 Symbol;mso-ansi-language:EN-US'><span style='mso-list:Ignore'>·<span
@@ -11909,7 +11960,7 @@
 style='mso-ansi-language:EN-US'><o:p></o:p></span></p>
 
 <p style='margin-top:5.0pt;margin-right:0cm;margin-bottom:0cm;margin-left:36.0pt;
-margin-bottom:.0001pt;text-indent:-18.0pt;mso-list:l40 level1 lfo29;tab-stops:
+margin-bottom:.0001pt;text-indent:-18.0pt;mso-list:l40 level1 lfo30;tab-stops:
 45.8pt 91.6pt 137.4pt 183.2pt 229.0pt 274.8pt 320.6pt 366.4pt 412.2pt 458.0pt 503.8pt 549.6pt 595.4pt 641.2pt 687.0pt 732.8pt'><![if !supportLists]><span
 lang=EN-US style='font-family:Symbol;mso-fareast-font-family:Symbol;mso-bidi-font-family:
 Symbol;mso-ansi-language:EN-US'><span style='mso-list:Ignore'>·<span
@@ -11930,7 +11981,7 @@
 EN-US;mso-no-proof:yes'>EUML also provides the same functionality as functions,
 to make the whole thing more “functional”:<o:p></o:p></span></p>
 
-<p class=MsoListParagraphCxSpFirst style='text-indent:-18.0pt;mso-list:l11 level1 lfo30;
+<p class=MsoListParagraphCxSpFirst style='text-indent:-18.0pt;mso-list:l11 level1 lfo31;
 tab-stops:45.8pt 91.6pt 137.4pt 183.2pt 229.0pt 274.8pt 320.6pt 366.4pt 412.2pt 458.0pt 503.8pt 549.6pt 595.4pt 641.2pt 687.0pt 732.8pt'><![if !supportLists]><span
 lang=EN-US style='font-family:Symbol;mso-fareast-font-family:Symbol;mso-bidi-font-family:
 Symbol;mso-ansi-language:EN-US'><span style='mso-list:Ignore'>·<span
@@ -11941,7 +11992,7 @@
 action (entry or exit)</b>, returns per reference the current state.</span><span
 lang=EN-US style='mso-ansi-language:EN-US'><o:p></o:p></span></p>
 
-<p class=MsoListParagraphCxSpMiddle style='text-indent:-18.0pt;mso-list:l11 level1 lfo30;
+<p class=MsoListParagraphCxSpMiddle style='text-indent:-18.0pt;mso-list:l11 level1 lfo31;
 tab-stops:45.8pt 91.6pt 137.4pt 183.2pt 229.0pt 274.8pt 320.6pt 366.4pt 412.2pt 458.0pt 503.8pt 549.6pt 595.4pt 641.2pt 687.0pt 732.8pt'><![if !supportLists]><span
 lang=EN-US style='font-family:Symbol;mso-fareast-font-family:Symbol;mso-bidi-font-family:
 Symbol;mso-ansi-language:EN-US'><span style='mso-list:Ignore'>·<span
@@ -11953,7 +12004,7 @@
 normal'>transition</b> action/guard, returns per reference, the transition
 source state.</span><span lang=EN-US style='mso-ansi-language:EN-US'><o:p></o:p></span></p>
 
-<p class=MsoListParagraphCxSpMiddle style='text-indent:-18.0pt;mso-list:l11 level1 lfo30;
+<p class=MsoListParagraphCxSpMiddle style='text-indent:-18.0pt;mso-list:l11 level1 lfo31;
 tab-stops:45.8pt 91.6pt 137.4pt 183.2pt 229.0pt 274.8pt 320.6pt 366.4pt 412.2pt 458.0pt 503.8pt 549.6pt 595.4pt 641.2pt 687.0pt 732.8pt'><![if !supportLists]><span
 lang=EN-US style='font-family:Symbol;mso-fareast-font-family:Symbol;mso-bidi-font-family:
 Symbol;mso-ansi-language:EN-US'><span style='mso-list:Ignore'>·<span
@@ -11965,7 +12016,7 @@
 normal'>transition</b> action/guard, returns per reference, the transition
 target state.</span><span lang=EN-US style='mso-ansi-language:EN-US'><o:p></o:p></span></p>
 
-<p class=MsoListParagraphCxSpMiddle style='text-indent:-18.0pt;mso-list:l11 level1 lfo30;
+<p class=MsoListParagraphCxSpMiddle style='text-indent:-18.0pt;mso-list:l11 level1 lfo31;
 tab-stops:45.8pt 91.6pt 137.4pt 183.2pt 229.0pt 274.8pt 320.6pt 366.4pt 412.2pt 458.0pt 503.8pt 549.6pt 595.4pt 641.2pt 687.0pt 732.8pt'><![if !supportLists]><span
 lang=EN-US style='font-family:Symbol;mso-fareast-font-family:Symbol;mso-bidi-font-family:
 Symbol;mso-ansi-language:EN-US'><span style='mso-list:Ignore'>·<span
@@ -11979,7 +12030,7 @@
 reference, the current event.</span><span lang=EN-US style='mso-ansi-language:
 EN-US'><o:p></o:p></span></p>
 
-<p class=MsoListParagraphCxSpMiddle style='text-indent:-18.0pt;mso-list:l11 level1 lfo30;
+<p class=MsoListParagraphCxSpMiddle style='text-indent:-18.0pt;mso-list:l11 level1 lfo31;
 tab-stops:45.8pt 91.6pt 137.4pt 183.2pt 229.0pt 274.8pt 320.6pt 366.4pt 412.2pt 458.0pt 503.8pt 549.6pt 595.4pt 641.2pt 687.0pt 732.8pt'><![if !supportLists]><span
 lang=EN-US style='font-family:Symbol;mso-fareast-font-family:Symbol;mso-bidi-font-family:
 Symbol;mso-ansi-language:EN-US'><span style='mso-list:Ignore'>·<span
@@ -11993,7 +12044,7 @@
 reference, the current state machine.</span><span lang=EN-US style='mso-ansi-language:
 EN-US'><o:p></o:p></span></p>
 
-<p class=MsoListParagraphCxSpMiddle style='text-indent:-18.0pt;mso-list:l11 level1 lfo30;
+<p class=MsoListParagraphCxSpMiddle style='text-indent:-18.0pt;mso-list:l11 level1 lfo31;
 tab-stops:45.8pt 91.6pt 137.4pt 183.2pt 229.0pt 274.8pt 320.6pt 366.4pt 412.2pt 458.0pt 503.8pt 549.6pt 595.4pt 641.2pt 687.0pt 732.8pt'><![if !supportLists]><span
 lang=EN-US style='font-family:Symbol;mso-fareast-font-family:Symbol;mso-bidi-font-family:
 Symbol;mso-ansi-language:EN-US'><span style='mso-list:Ignore'>·<span
@@ -12008,7 +12059,7 @@
 state machine or of the one passed as 2<sup>nd</sup> parameter.</span><span
 lang=EN-US style='mso-ansi-language:EN-US'><o:p></o:p></span></p>
 
-<p class=MsoListParagraphCxSpLast style='text-indent:-18.0pt;mso-list:l11 level1 lfo30;
+<p class=MsoListParagraphCxSpLast style='text-indent:-18.0pt;mso-list:l11 level1 lfo31;
 tab-stops:45.8pt 91.6pt 137.4pt 183.2pt 229.0pt 274.8pt 320.6pt 366.4pt 412.2pt 458.0pt 503.8pt 549.6pt 595.4pt 641.2pt 687.0pt 732.8pt'><![if !supportLists]><span
 lang=EN-US style='font-family:Symbol;mso-fareast-font-family:Symbol;mso-bidi-font-family:
 Symbol;mso-ansi-language:EN-US'><span style='mso-list:Ignore'>·<span
@@ -12121,10 +12172,12 @@
 mso-layout-grid-align:none;text-autospace:none'><span lang=EN-US
 style='font-size:10.0pt;font-family:"Courier New";mso-fareast-font-family:"Times New Roman";
 mso-ansi-language:EN-US;mso-no-proof:yes'><span
-style='mso-spacerun:yes'>                                
-</span><span style='color:#030003'>configure_</span><< <span
-style='color:#030003'>PlayingPaused</span>() << <span style='color:#030003'>CDLoaded</span>()
-)) <span style='color:#030003'>Paused</span>;<o:p></o:p></span></p>
+style='mso-spacerun:yes'>                    
+</span><span
+style='mso-spacerun:yes'>            </span><span
+style='color:#030003'>configure_</span><< <span style='color:#030003'>PlayingPaused</span>()
+<< <span style='color:#030003'>CDLoaded</span>() )) <span
+style='color:#030003'>Paused</span>;<o:p></o:p></span></p>
 
 <p class=MsoNormal style='tab-stops:45.8pt 91.6pt 137.4pt 183.2pt 229.0pt 274.8pt 320.6pt 366.4pt 412.2pt 458.0pt 503.8pt 549.6pt 595.4pt 641.2pt 687.0pt 732.8pt'><span
 lang=EN-US style='mso-ansi-language:EN-US'><o:p> </o:p></span></p>
@@ -12196,9 +12249,9 @@
 lang=EN-US style='mso-ansi-language:EN-US'><o:p> </o:p></span></p>
 
 <p class=MsoNormal style='tab-stops:45.8pt 91.6pt 137.4pt 183.2pt 229.0pt 274.8pt 320.6pt 366.4pt 412.2pt 458.0pt 503.8pt 549.6pt 595.4pt 641.2pt 687.0pt 732.8pt'><span
-lang=EN-US style='mso-ansi-language:EN-US'>This way, nobody needs to know
-metaprogramming techniques to define a state machine. Under the hood, what you
-get really is mpl::vector2.<o:p></o:p></span></p>
+lang=EN-US style='mso-ansi-language:EN-US'>This way, nobody needs to know metaprogramming
+techniques to define a state machine. Under the hood, what you get really is
+mpl::vector2.<o:p></o:p></span></p>
 
 <p class=MsoNormal style='tab-stops:45.8pt 91.6pt 137.4pt 183.2pt 229.0pt 274.8pt 320.6pt 366.4pt 412.2pt 458.0pt 503.8pt 549.6pt 595.4pt 641.2pt 687.0pt 732.8pt'><span
 lang=EN-US style='mso-ansi-language:EN-US'><o:p> </o:p></span></p>
@@ -12229,9 +12282,8 @@
 
 <p class=MsoNormal style='tab-stops:45.8pt 91.6pt 137.4pt 183.2pt 229.0pt 274.8pt 320.6pt 366.4pt 412.2pt 458.0pt 503.8pt 549.6pt 595.4pt 641.2pt 687.0pt 732.8pt'><span
 lang=EN-US style='mso-ansi-language:EN-US'>EUML also supports defining <a
-href="#_Orthogonal_States_(+Defer">deferred events</a> in the state (state
-machine) definition. To this aim, we can reuse the previous flag grammar. For
-example:<o:p></o:p></span></p>
+href="#_Orthogonal_States_(+Defer">deferred events</a> in the state (state machine)
+definition. To this aim, we can reuse the previous flag grammar. For example:<o:p></o:p></span></p>
 
 <p class=MsoNormal style='tab-stops:45.8pt 91.6pt 137.4pt 183.2pt 229.0pt 274.8pt 320.6pt 366.4pt 412.2pt 458.0pt 503.8pt 549.6pt 595.4pt 641.2pt 687.0pt 732.8pt'><span
 lang=EN-US style='mso-ansi-language:EN-US'><o:p> </o:p></span></p>
@@ -12317,8 +12369,7 @@
 mso-layout-grid-align:none;text-autospace:none'><span lang=EN-US
 style='font-size:10.0pt;font-family:"Courier New";mso-fareast-font-family:"Times New Roman";
 mso-ansi-language:EN-US;mso-no-proof:yes'><span
-style='mso-spacerun:yes'>   </span><span
-style='mso-spacerun:yes'> </span><span style='color:blue'>template</span>
+style='mso-spacerun:yes'>    </span><span style='color:blue'>template</span>
 <<span style='color:blue'>class</span> <span style='color:#030003'>Event</span>,<span
 style='color:blue'>class</span> <span style='color:#030003'>FSM</span>><o:p></o:p></span></p>
 
@@ -12443,7 +12494,7 @@
 operators at our disposal:<o:p></o:p></span></p>
 
 <p style='margin-top:5.0pt;margin-right:0cm;margin-bottom:0cm;margin-left:36.0pt;
-margin-bottom:.0001pt;text-indent:-18.0pt;mso-list:l17 level1 lfo31;tab-stops:
+margin-bottom:.0001pt;text-indent:-18.0pt;mso-list:l17 level1 lfo32;tab-stops:
 45.8pt 91.6pt 137.4pt 183.2pt 229.0pt 274.8pt 320.6pt 366.4pt 412.2pt 458.0pt 503.8pt 549.6pt 595.4pt 641.2pt 687.0pt 732.8pt'><![if !supportLists]><span
 lang=EN-US style='font-family:Symbol;mso-fareast-font-family:Symbol;mso-bidi-font-family:
 Symbol;mso-ansi-language:EN-US'><span style='mso-list:Ignore'>·<span
@@ -12451,7 +12502,7 @@
 lang=EN-US style='mso-ansi-language:EN-US'>And<o:p></o:p></span></p>
 
 <p style='margin-top:5.0pt;margin-right:0cm;margin-bottom:0cm;margin-left:36.0pt;
-margin-bottom:.0001pt;text-indent:-18.0pt;mso-list:l17 level1 lfo31;tab-stops:
+margin-bottom:.0001pt;text-indent:-18.0pt;mso-list:l17 level1 lfo32;tab-stops:
 45.8pt 91.6pt 137.4pt 183.2pt 229.0pt 274.8pt 320.6pt 366.4pt 412.2pt 458.0pt 503.8pt 549.6pt 595.4pt 641.2pt 687.0pt 732.8pt'><![if !supportLists]><span
 lang=EN-US style='font-family:Symbol;mso-fareast-font-family:Symbol;mso-bidi-font-family:
 Symbol;mso-ansi-language:EN-US'><span style='mso-list:Ignore'>·<span
@@ -12459,7 +12510,7 @@
 lang=EN-US style='mso-ansi-language:EN-US'>Or<o:p></o:p></span></p>
 
 <p style='margin-top:5.0pt;margin-right:0cm;margin-bottom:0cm;margin-left:36.0pt;
-margin-bottom:.0001pt;text-indent:-18.0pt;mso-list:l17 level1 lfo31;tab-stops:
+margin-bottom:.0001pt;text-indent:-18.0pt;mso-list:l17 level1 lfo32;tab-stops:
 45.8pt 91.6pt 137.4pt 183.2pt 229.0pt 274.8pt 320.6pt 366.4pt 412.2pt 458.0pt 503.8pt 549.6pt 595.4pt 641.2pt 687.0pt 732.8pt'><![if !supportLists]><span
 lang=EN-US style='font-family:Symbol;mso-fareast-font-family:Symbol;mso-bidi-font-family:
 Symbol;mso-ansi-language:EN-US'><span style='mso-list:Ignore'>·<span
@@ -12467,7 +12518,7 @@
 lang=EN-US style='mso-ansi-language:EN-US'>Not<o:p></o:p></span></p>
 
 <p style='margin-top:5.0pt;margin-right:0cm;margin-bottom:0cm;margin-left:36.0pt;
-margin-bottom:.0001pt;text-indent:-18.0pt;mso-list:l17 level1 lfo31;tab-stops:
+margin-bottom:.0001pt;text-indent:-18.0pt;mso-list:l17 level1 lfo32;tab-stops:
 45.8pt 91.6pt 137.4pt 183.2pt 229.0pt 274.8pt 320.6pt 366.4pt 412.2pt 458.0pt 503.8pt 549.6pt 595.4pt 641.2pt 687.0pt 732.8pt'><![if !supportLists]><span
 lang=EN-US style='font-family:Symbol;mso-fareast-font-family:Symbol;mso-bidi-font-family:
 Symbol;mso-ansi-language:EN-US'><span style='mso-list:Ignore'>·<span
@@ -12480,7 +12531,7 @@
 of C++ operators at our disposal:<o:p></o:p></span></p>
 
 <p style='margin-top:5.0pt;margin-right:0cm;margin-bottom:0cm;margin-left:36.0pt;
-margin-bottom:.0001pt;text-indent:-18.0pt;mso-list:l9 level1 lfo32;tab-stops:
+margin-bottom:.0001pt;text-indent:-18.0pt;mso-list:l9 level1 lfo33;tab-stops:
 45.8pt 91.6pt 137.4pt 183.2pt 229.0pt 274.8pt 320.6pt 366.4pt 412.2pt 458.0pt 503.8pt 549.6pt 595.4pt 641.2pt 687.0pt 732.8pt'><![if !supportLists]><span
 lang=EN-US style='font-family:Symbol;mso-fareast-font-family:Symbol;mso-bidi-font-family:
 Symbol;mso-ansi-language:EN-US'><span style='mso-list:Ignore'>·<span
@@ -12488,7 +12539,7 @@
 lang=EN-US style='mso-ansi-language:EN-US'>Pre/post increment/decrement<o:p></o:p></span></p>
 
 <p style='margin-top:5.0pt;margin-right:0cm;margin-bottom:0cm;margin-left:36.0pt;
-margin-bottom:.0001pt;text-indent:-18.0pt;mso-list:l9 level1 lfo32;tab-stops:
+margin-bottom:.0001pt;text-indent:-18.0pt;mso-list:l9 level1 lfo33;tab-stops:
 45.8pt 91.6pt 137.4pt 183.2pt 229.0pt 274.8pt 320.6pt 366.4pt 412.2pt 458.0pt 503.8pt 549.6pt 595.4pt 641.2pt 687.0pt 732.8pt'><![if !supportLists]><span
 lang=EN-US style='font-family:Symbol;mso-fareast-font-family:Symbol;mso-bidi-font-family:
 Symbol;mso-ansi-language:EN-US'><span style='mso-list:Ignore'>·<span
@@ -12496,7 +12547,7 @@
 lang=EN-US style='mso-ansi-language:EN-US'>+, -, *, /, %, bitwise (&,|,^)<o:p></o:p></span></p>
 
 <p style='margin-top:5.0pt;margin-right:0cm;margin-bottom:0cm;margin-left:36.0pt;
-margin-bottom:.0001pt;text-indent:-18.0pt;mso-list:l9 level1 lfo32;tab-stops:
+margin-bottom:.0001pt;text-indent:-18.0pt;mso-list:l9 level1 lfo33;tab-stops:
 45.8pt 91.6pt 137.4pt 183.2pt 229.0pt 274.8pt 320.6pt 366.4pt 412.2pt 458.0pt 503.8pt 549.6pt 595.4pt 641.2pt 687.0pt 732.8pt'><![if !supportLists]><span
 lang=EN-US style='font-family:Symbol;mso-fareast-font-family:Symbol;mso-bidi-font-family:
 Symbol;mso-ansi-language:EN-US'><span style='mso-list:Ignore'>·<span
@@ -12505,7 +12556,7 @@
 vector and map)<o:p></o:p></span></p>
 
 <p style='margin-top:5.0pt;margin-right:0cm;margin-bottom:0cm;margin-left:36.0pt;
-margin-bottom:.0001pt;text-indent:-18.0pt;mso-list:l9 level1 lfo32;tab-stops:
+margin-bottom:.0001pt;text-indent:-18.0pt;mso-list:l9 level1 lfo33;tab-stops:
 45.8pt 91.6pt 137.4pt 183.2pt 229.0pt 274.8pt 320.6pt 366.4pt 412.2pt 458.0pt 503.8pt 549.6pt 595.4pt 641.2pt 687.0pt 732.8pt'><![if !supportLists]><span
 lang=EN-US style='font-family:Symbol;mso-fareast-font-family:Symbol;mso-bidi-font-family:
 Symbol;mso-ansi-language:EN-US'><span style='mso-list:Ignore'>·<span
@@ -12514,7 +12565,7 @@
 <<=, >>=<o:p></o:p></span></p>
 
 <p style='margin-top:5.0pt;margin-right:0cm;margin-bottom:0cm;margin-left:36.0pt;
-margin-bottom:.0001pt;text-indent:-18.0pt;mso-list:l9 level1 lfo32;tab-stops:
+margin-bottom:.0001pt;text-indent:-18.0pt;mso-list:l9 level1 lfo33;tab-stops:
 45.8pt 91.6pt 137.4pt 183.2pt 229.0pt 274.8pt 320.6pt 366.4pt 412.2pt 458.0pt 503.8pt 549.6pt 595.4pt 641.2pt 687.0pt 732.8pt'><![if !supportLists]><span
 lang=EN-US style='font-family:Symbol;mso-fareast-font-family:Symbol;mso-bidi-font-family:
 Symbol;mso-ansi-language:EN-US'><span style='mso-list:Ignore'>·<span
@@ -12522,7 +12573,7 @@
 lang=EN-US style='mso-ansi-language:EN-US'><<, >><o:p></o:p></span></p>
 
 <p style='margin-top:5.0pt;margin-right:0cm;margin-bottom:0cm;margin-left:36.0pt;
-margin-bottom:.0001pt;text-indent:-18.0pt;mso-list:l9 level1 lfo32;tab-stops:
+margin-bottom:.0001pt;text-indent:-18.0pt;mso-list:l9 level1 lfo33;tab-stops:
 45.8pt 91.6pt 137.4pt 183.2pt 229.0pt 274.8pt 320.6pt 366.4pt 412.2pt 458.0pt 503.8pt 549.6pt 595.4pt 641.2pt 687.0pt 732.8pt'><![if !supportLists]><span
 lang=EN-US style='font-family:Symbol;mso-fareast-font-family:Symbol;mso-bidi-font-family:
 Symbol;mso-ansi-language:EN-US'><span style='mso-list:Ignore'>·<span
@@ -12538,8 +12589,7 @@
 <p class=MsoNormal style='margin-top:12.0pt;margin-right:36.45pt;margin-bottom:
 0cm;margin-left:36.45pt;margin-bottom:.0001pt;tab-stops:45.8pt 91.6pt 137.4pt 183.2pt 229.0pt 274.8pt 320.6pt 366.4pt 412.2pt 458.0pt 503.8pt 549.6pt 595.4pt 641.2pt 687.0pt 732.8pt'><span
 lang=EN style='font-size:11.0pt;font-family:"Courier New";mso-fareast-font-family:
-"Times New Roman";color:black;mso-ansi-language:EN'>#include <
-msm/front/euml/operator.hpp><o:p></o:p></span></p>
+"Times New Roman";color:black;mso-ansi-language:EN'>#include < msm/front/euml/operator.hpp><o:p></o:p></span></p>
 
 <p class=MsoNormal style='margin-top:12.0pt;margin-right:36.45pt;margin-bottom:
 0cm;margin-left:36.45pt;margin-bottom:.0001pt;tab-stops:45.8pt 91.6pt 137.4pt 183.2pt 229.0pt 274.8pt 320.6pt 366.4pt 412.2pt 458.0pt 503.8pt 549.6pt 595.4pt 641.2pt 687.0pt 732.8pt'><span
@@ -12555,7 +12605,7 @@
 syntax:<o:p></o:p></span></p>
 
 <p style='margin-top:5.0pt;margin-right:0cm;margin-bottom:0cm;margin-left:36.0pt;
-margin-bottom:.0001pt;text-indent:-18.0pt;mso-list:l46 level1 lfo33;tab-stops:
+margin-bottom:.0001pt;text-indent:-18.0pt;mso-list:l46 level1 lfo34;tab-stops:
 45.8pt 91.6pt 137.4pt 183.2pt 229.0pt 274.8pt 320.6pt 366.4pt 412.2pt 458.0pt 503.8pt 549.6pt 595.4pt 641.2pt 687.0pt 732.8pt'><![if !supportLists]><span
 lang=EN-US style='font-family:Symbol;mso-fareast-font-family:Symbol;mso-bidi-font-family:
 Symbol;mso-ansi-language:EN-US'><span style='mso-list:Ignore'>·<span
@@ -12565,17 +12615,17 @@
 guard respects the guard grammar and action the action sequence grammar.<o:p></o:p></span></p>
 
 <p style='margin-top:5.0pt;margin-right:0cm;margin-bottom:0cm;margin-left:36.0pt;
-margin-bottom:.0001pt;text-indent:-18.0pt;mso-list:l46 level1 lfo33;tab-stops:
+margin-bottom:.0001pt;text-indent:-18.0pt;mso-list:l46 level1 lfo34;tab-stops:
 45.8pt 91.6pt 137.4pt 183.2pt 229.0pt 274.8pt 320.6pt 366.4pt 412.2pt 458.0pt 503.8pt 549.6pt 595.4pt 641.2pt 687.0pt 732.8pt'><![if !supportLists]><span
 lang=EN-US style='font-family:Symbol;mso-fareast-font-family:Symbol;mso-bidi-font-family:
 Symbol;mso-ansi-language:EN-US'><span style='mso-list:Ignore'>·<span
 style='font:7.0pt "Times New Roman"'>       </span></span></span><![endif]><span
 lang=EN-US style='font-family:"Courier New";mso-ansi-language:EN-US'>if_then_(guard,
-action)</span><span lang=EN-US style='mso-ansi-language:EN-US'> where guard
-respects the guard grammar and action the action sequence grammar.<o:p></o:p></span></p>
+action)</span><span lang=EN-US style='mso-ansi-language:EN-US'> where guard respects
+the guard grammar and action the action sequence grammar.<o:p></o:p></span></p>
 
 <p style='margin-top:5.0pt;margin-right:0cm;margin-bottom:0cm;margin-left:36.0pt;
-margin-bottom:.0001pt;text-indent:-18.0pt;mso-list:l46 level1 lfo33;tab-stops:
+margin-bottom:.0001pt;text-indent:-18.0pt;mso-list:l46 level1 lfo34;tab-stops:
 45.8pt 91.6pt 137.4pt 183.2pt 229.0pt 274.8pt 320.6pt 366.4pt 412.2pt 458.0pt 503.8pt 549.6pt 595.4pt 641.2pt 687.0pt 732.8pt'><![if !supportLists]><span
 lang=EN-US style='font-family:Symbol;mso-fareast-font-family:Symbol;mso-bidi-font-family:
 Symbol;mso-ansi-language:EN-US'><span style='mso-list:Ignore'>·<span
@@ -12585,7 +12635,7 @@
 respects the guard grammar and action the action sequence grammar.<o:p></o:p></span></p>
 
 <p style='margin-top:5.0pt;margin-right:0cm;margin-bottom:0cm;margin-left:36.0pt;
-margin-bottom:.0001pt;text-indent:-18.0pt;mso-list:l46 level1 lfo33;tab-stops:
+margin-bottom:.0001pt;text-indent:-18.0pt;mso-list:l46 level1 lfo34;tab-stops:
 45.8pt 91.6pt 137.4pt 183.2pt 229.0pt 274.8pt 320.6pt 366.4pt 412.2pt 458.0pt 503.8pt 549.6pt 595.4pt 641.2pt 687.0pt 732.8pt'><![if !supportLists]><span
 lang=EN-US style='font-family:Symbol;mso-fareast-font-family:Symbol;mso-bidi-font-family:
 Symbol;mso-ansi-language:EN-US'><span style='mso-list:Ignore'>·<span
@@ -12596,7 +12646,7 @@
 and action the action sequence grammar.<o:p></o:p></span></p>
 
 <p style='margin-top:5.0pt;margin-right:0cm;margin-bottom:0cm;margin-left:36.0pt;
-margin-bottom:.0001pt;text-indent:-18.0pt;mso-list:l46 level1 lfo33;tab-stops:
+margin-bottom:.0001pt;text-indent:-18.0pt;mso-list:l46 level1 lfo34;tab-stops:
 45.8pt 91.6pt 137.4pt 183.2pt 229.0pt 274.8pt 320.6pt 366.4pt 412.2pt 458.0pt 503.8pt 549.6pt 595.4pt 641.2pt 687.0pt 732.8pt'><![if !supportLists]><span
 lang=EN-US style='font-family:Symbol;mso-fareast-font-family:Symbol;mso-bidi-font-family:
 Symbol;mso-ansi-language:EN-US'><span style='mso-list:Ignore'>·<span
@@ -12614,7 +12664,7 @@
 Msm state machine functionality:<o:p></o:p></span></p>
 
 <p style='margin-top:5.0pt;margin-right:0cm;margin-bottom:0cm;margin-left:36.0pt;
-margin-bottom:.0001pt;text-indent:-18.0pt;mso-list:l3 level1 lfo34;tab-stops:
+margin-bottom:.0001pt;text-indent:-18.0pt;mso-list:l3 level1 lfo35;tab-stops:
 45.8pt 91.6pt 137.4pt 183.2pt 229.0pt 274.8pt 320.6pt 366.4pt 412.2pt 458.0pt 503.8pt 549.6pt 595.4pt 641.2pt 687.0pt 732.8pt'><![if !supportLists]><span
 lang=EN-US style='font-family:Symbol;mso-fareast-font-family:Symbol;mso-bidi-font-family:
 Symbol;mso-ansi-language:EN-US'><span style='mso-list:Ignore'>·<span
@@ -12629,7 +12679,7 @@
 events to several external machines.<o:p></o:p></span></p>
 
 <p style='margin-top:5.0pt;margin-right:0cm;margin-bottom:0cm;margin-left:36.0pt;
-margin-bottom:.0001pt;text-indent:-18.0pt;mso-list:l3 level1 lfo34;tab-stops:
+margin-bottom:.0001pt;text-indent:-18.0pt;mso-list:l3 level1 lfo35;tab-stops:
 45.8pt 91.6pt 137.4pt 183.2pt 229.0pt 274.8pt 320.6pt 366.4pt 412.2pt 458.0pt 503.8pt 549.6pt 595.4pt 641.2pt 687.0pt 732.8pt'><![if !supportLists]><span
 lang=EN-US style='font-family:Symbol;mso-fareast-font-family:Symbol;mso-bidi-font-family:
 Symbol;mso-ansi-language:EN-US'><span style='mso-list:Ignore'>·<span
@@ -12643,7 +12693,7 @@
 5<sup>th</sup> argument.<o:p></o:p></span></p>
 
 <p style='margin-top:5.0pt;margin-right:0cm;margin-bottom:0cm;margin-left:36.0pt;
-margin-bottom:.0001pt;text-indent:-18.0pt;mso-list:l3 level1 lfo34;tab-stops:
+margin-bottom:.0001pt;text-indent:-18.0pt;mso-list:l3 level1 lfo35;tab-stops:
 45.8pt 91.6pt 137.4pt 183.2pt 229.0pt 274.8pt 320.6pt 366.4pt 412.2pt 458.0pt 503.8pt 549.6pt 595.4pt 641.2pt 687.0pt 732.8pt'><![if !supportLists]><span
 lang=EN-US style='font-family:Symbol;mso-fareast-font-family:Symbol;mso-bidi-font-family:
 Symbol;mso-ansi-language:EN-US'><span style='mso-list:Ignore'>·<span
@@ -12656,7 +12706,7 @@
 the one passed as 2<sup>nd</sup> argument.<o:p></o:p></span></p>
 
 <p style='margin-top:5.0pt;margin-right:0cm;margin-bottom:0cm;margin-left:36.0pt;
-margin-bottom:.0001pt;text-indent:-18.0pt;mso-list:l3 level1 lfo34;tab-stops:
+margin-bottom:.0001pt;text-indent:-18.0pt;mso-list:l3 level1 lfo35;tab-stops:
 45.8pt 91.6pt 137.4pt 183.2pt 229.0pt 274.8pt 320.6pt 366.4pt 412.2pt 458.0pt 503.8pt 549.6pt 595.4pt 641.2pt 687.0pt 732.8pt'><![if !supportLists]><span
 lang=EN-US style='font-family:Symbol;mso-fareast-font-family:Symbol;mso-bidi-font-family:
 Symbol;mso-ansi-language:EN-US'><span style='mso-list:Ignore'>·<span
@@ -12674,7 +12724,7 @@
 lang=EN-US style='mso-ansi-language:EN-US'>Basic types are also provided:<o:p></o:p></span></p>
 
 <p style='margin-top:5.0pt;margin-right:0cm;margin-bottom:0cm;margin-left:36.0pt;
-margin-bottom:.0001pt;text-indent:-18.0pt;mso-list:l3 level1 lfo34;tab-stops:
+margin-bottom:.0001pt;text-indent:-18.0pt;mso-list:l3 level1 lfo35;tab-stops:
 45.8pt 91.6pt 137.4pt 183.2pt 229.0pt 274.8pt 320.6pt 366.4pt 412.2pt 458.0pt 503.8pt 549.6pt 595.4pt 641.2pt 687.0pt 732.8pt'><![if !supportLists]><span
 lang=EN-US style='font-family:Symbol;mso-fareast-font-family:Symbol;mso-bidi-font-family:
 Symbol;mso-ansi-language:EN-US'><span style='mso-list:Ignore'>·<span
@@ -12686,7 +12736,7 @@
 grammars. <o:p></o:p></span></p>
 
 <p style='margin-top:5.0pt;margin-right:0cm;margin-bottom:0cm;margin-left:36.0pt;
-margin-bottom:.0001pt;text-indent:-18.0pt;mso-list:l3 level1 lfo34;tab-stops:
+margin-bottom:.0001pt;text-indent:-18.0pt;mso-list:l3 level1 lfo35;tab-stops:
 45.8pt 91.6pt 137.4pt 183.2pt 229.0pt 274.8pt 320.6pt 366.4pt 412.2pt 458.0pt 503.8pt 549.6pt 595.4pt 641.2pt 687.0pt 732.8pt'><![if !supportLists]><span
 lang=EN-US style='font-family:Symbol;mso-fareast-font-family:Symbol;mso-bidi-font-family:
 Symbol;mso-ansi-language:EN-US'><span style='mso-list:Ignore'>·<span
@@ -12695,7 +12745,7 @@
 lang=EN-US style='mso-ansi-language:EN-US'>: Wrapper around size_t<o:p></o:p></span></p>
 
 <p style='margin-top:5.0pt;margin-right:0cm;margin-bottom:0cm;margin-left:36.0pt;
-margin-bottom:.0001pt;text-indent:-18.0pt;mso-list:l3 level1 lfo34;tab-stops:
+margin-bottom:.0001pt;text-indent:-18.0pt;mso-list:l3 level1 lfo35;tab-stops:
 45.8pt 91.6pt 137.4pt 183.2pt 229.0pt 274.8pt 320.6pt 366.4pt 412.2pt 458.0pt 503.8pt 549.6pt 595.4pt 641.2pt 687.0pt 732.8pt'><![if !supportLists]><span
 lang=EN-US style='font-family:Symbol;mso-fareast-font-family:Symbol;mso-bidi-font-family:
 Symbol;mso-ansi-language:EN-US'><span style='mso-list:Ignore'>·<span
@@ -12704,21 +12754,22 @@
 lang=EN-US style='mso-ansi-language:EN-US'>: Wrapper around char<o:p></o:p></span></p>
 
 <p style='margin-top:5.0pt;margin-right:0cm;margin-bottom:0cm;margin-left:36.0pt;
-margin-bottom:.0001pt;text-indent:-18.0pt;mso-list:l3 level1 lfo34;tab-stops:
+margin-bottom:.0001pt;text-indent:-18.0pt;mso-list:l3 level1 lfo35;tab-stops:
 45.8pt 91.6pt 137.4pt 183.2pt 229.0pt 274.8pt 320.6pt 366.4pt 412.2pt 458.0pt 503.8pt 549.6pt 595.4pt 641.2pt 687.0pt 732.8pt'><![if !supportLists]><span
 lang=EN-US style='font-family:Symbol;mso-fareast-font-family:Symbol;mso-bidi-font-family:
 Symbol;mso-ansi-language:EN-US'><span style='mso-list:Ignore'>·<span
 style='font:7.0pt "Times New Roman"'>       </span></span></span><![endif]><span
 lang=EN-US style='font-family:"Courier New";mso-ansi-language:EN-US'>String_<mpl::string></span><span
 lang=EN-US style='mso-ansi-language:EN-US'>: Wrapper around std::string. Needs
-Boost >= 1.40. You can then define a string in an action, for example String_<mpl::string<’Hell’,’o
+Boost >= 1.40. You can then define a string in an action, for example
+String_<mpl::string<’Hell’,’o
 wo’,’rld’> >(). Please refer to the <a
 href="http://www.boost.org/doc/libs/1_40_0/libs/mpl/doc/refmanual/string.html">MPL
 documentation</a>. This is the one case where you will see some
 Metaprogramming.<o:p></o:p></span></p>
 
 <p style='margin-top:5.0pt;margin-right:0cm;margin-bottom:0cm;margin-left:36.0pt;
-margin-bottom:.0001pt;text-indent:-18.0pt;mso-list:l3 level1 lfo34;tab-stops:
+margin-bottom:.0001pt;text-indent:-18.0pt;mso-list:l3 level1 lfo35;tab-stops:
 45.8pt 91.6pt 137.4pt 183.2pt 229.0pt 274.8pt 320.6pt 366.4pt 412.2pt 458.0pt 503.8pt 549.6pt 595.4pt 641.2pt 687.0pt 732.8pt'><![if !supportLists]><span
 lang=EN-US style='font-family:Symbol;mso-fareast-font-family:Symbol;mso-bidi-font-family:
 Symbol;mso-ansi-language:EN-US'><span style='mso-list:Ignore'>·<span
@@ -12737,7 +12788,7 @@
 and that you respect the grammar:<o:p></o:p></span></p>
 
 <p style='margin-top:5.0pt;margin-right:0cm;margin-bottom:0cm;margin-left:36.0pt;
-margin-bottom:.0001pt;text-indent:-18.0pt;mso-list:l48 level1 lfo35;tab-stops:
+margin-bottom:.0001pt;text-indent:-18.0pt;mso-list:l48 level1 lfo36;tab-stops:
 45.8pt 91.6pt 137.4pt 183.2pt 229.0pt 274.8pt 320.6pt 366.4pt 412.2pt 458.0pt 503.8pt 549.6pt 595.4pt 641.2pt 687.0pt 732.8pt'><![if !supportLists]><span
 lang=EN-US style='font-family:Symbol;mso-fareast-font-family:Symbol;mso-bidi-font-family:
 Symbol;mso-ansi-language:EN-US'><span style='mso-list:Ignore'>·<span
@@ -12746,7 +12797,7 @@
 return a bool.<o:p></o:p></span></p>
 
 <p style='margin-top:5.0pt;margin-right:0cm;margin-bottom:0cm;margin-left:36.0pt;
-margin-bottom:.0001pt;text-indent:-18.0pt;mso-list:l48 level1 lfo35;tab-stops:
+margin-bottom:.0001pt;text-indent:-18.0pt;mso-list:l48 level1 lfo36;tab-stops:
 45.8pt 91.6pt 137.4pt 183.2pt 229.0pt 274.8pt 320.6pt 366.4pt 412.2pt 458.0pt 503.8pt 549.6pt 595.4pt 641.2pt 687.0pt 732.8pt'><![if !supportLists]><span
 lang=EN-US style='font-family:Symbol;mso-fareast-font-family:Symbol;mso-bidi-font-family:
 Symbol;mso-ansi-language:EN-US'><span style='mso-list:Ignore'>·<span
@@ -12759,7 +12810,7 @@
 all this:<o:p></o:p></span></p>
 
 <p style='margin-top:5.0pt;margin-right:0cm;margin-bottom:0cm;margin-left:36.0pt;
-margin-bottom:.0001pt;text-indent:-18.0pt;mso-list:l28 level1 lfo36;tab-stops:
+margin-bottom:.0001pt;text-indent:-18.0pt;mso-list:l28 level1 lfo37;tab-stops:
 45.8pt 91.6pt 137.4pt 183.2pt 229.0pt 274.8pt 320.6pt 366.4pt 412.2pt 458.0pt 503.8pt 549.6pt 595.4pt 641.2pt 687.0pt 732.8pt'><![if !supportLists]><span
 lang=EN-US style='font-family:Symbol;mso-fareast-font-family:Symbol;mso-bidi-font-family:
 Symbol;mso-ansi-language:EN-US'><span style='mso-list:Ignore'>·<span
@@ -12773,7 +12824,7 @@
 is DISK_CD</span><span lang=EN-US style='mso-ansi-language:EN-US'><o:p></o:p></span></p>
 
 <p style='margin-top:5.0pt;margin-right:0cm;margin-bottom:0cm;margin-left:36.0pt;
-margin-bottom:.0001pt;text-indent:-18.0pt;mso-list:l28 level1 lfo36;tab-stops:
+margin-bottom:.0001pt;text-indent:-18.0pt;mso-list:l28 level1 lfo37;tab-stops:
 45.8pt 91.6pt 137.4pt 183.2pt 229.0pt 274.8pt 320.6pt 366.4pt 412.2pt 458.0pt 503.8pt 549.6pt 595.4pt 641.2pt 687.0pt 732.8pt'><![if !supportLists]><span
 lang=EN-US style='font-family:Symbol;mso-fareast-font-family:Symbol;mso-bidi-font-family:
 Symbol;mso-ansi-language:EN-US'><span style='mso-list:Ignore'>·<span
@@ -12787,23 +12838,23 @@
 EN-US'><o:p></o:p></span></p>
 
 <p style='margin-top:5.0pt;margin-right:0cm;margin-bottom:0cm;margin-left:36.0pt;
-margin-bottom:.0001pt;text-indent:-18.0pt;mso-list:l28 level1 lfo36;tab-stops:
+margin-bottom:.0001pt;text-indent:-18.0pt;mso-list:l28 level1 lfo37;tab-stops:
 45.8pt 91.6pt 137.4pt 183.2pt 229.0pt 274.8pt 320.6pt 366.4pt 412.2pt 458.0pt 503.8pt 549.6pt 595.4pt 641.2pt 687.0pt 732.8pt'><![if !supportLists]><span
 lang=EN-US style='font-family:Symbol;mso-fareast-font-family:Symbol;mso-bidi-font-family:
 Symbol;mso-ansi-language:EN-US'><span style='mso-list:Ignore'>·<span
 style='font:7.0pt "Times New Roman"'>       </span></span></span><![endif]><span
 lang=EN-US style='font-size:10.0pt;font-family:"Courier New";mso-fareast-font-family:
-"Times New Roman";mso-ansi-language:EN-US;mso-no-proof:yes'>[(if_then_else_( True_(),Guard1(),Guard2()))]
-</span><span lang=EN-US style='mso-fareast-font-family:"Times New Roman";
-mso-ansi-language:EN-US;mso-no-proof:yes'>is a guard returning the result of
-calling </span><span lang=EN-US style='font-family:"Courier New";mso-fareast-font-family:
-"Times New Roman";mso-ansi-language:EN-US;mso-no-proof:yes'>Guard1</span><span
-lang=EN-US style='mso-fareast-font-family:"Times New Roman";mso-ansi-language:
-EN-US;mso-no-proof:yes'> (True_ will, well, return true).</span><span
-lang=EN-US style='mso-ansi-language:EN-US'><o:p></o:p></span></p>
+"Times New Roman";mso-ansi-language:EN-US;mso-no-proof:yes'>[(if_then_else_(
+True_(),Guard1(),Guard2()))] </span><span lang=EN-US style='mso-fareast-font-family:
+"Times New Roman";mso-ansi-language:EN-US;mso-no-proof:yes'>is a guard
+returning the result of calling </span><span lang=EN-US style='font-family:
+"Courier New";mso-fareast-font-family:"Times New Roman";mso-ansi-language:EN-US;
+mso-no-proof:yes'>Guard1</span><span lang=EN-US style='mso-fareast-font-family:
+"Times New Roman";mso-ansi-language:EN-US;mso-no-proof:yes'> (True_ will, well,
+return true).</span><span lang=EN-US style='mso-ansi-language:EN-US'><o:p></o:p></span></p>
 
 <p style='margin-top:5.0pt;margin-right:0cm;margin-bottom:0cm;margin-left:36.0pt;
-margin-bottom:.0001pt;text-indent:-18.0pt;mso-list:l28 level1 lfo36;tab-stops:
+margin-bottom:.0001pt;text-indent:-18.0pt;mso-list:l28 level1 lfo37;tab-stops:
 45.8pt 91.6pt 137.4pt 183.2pt 229.0pt 274.8pt 320.6pt 366.4pt 412.2pt 458.0pt 503.8pt 549.6pt 595.4pt 641.2pt 687.0pt 732.8pt'><![if !supportLists]><span
 lang=EN-US style='font-family:Symbol;mso-fareast-font-family:Symbol;mso-bidi-font-family:
 Symbol;mso-ansi-language:EN-US'><span style='mso-list:Ignore'>·<span
@@ -12822,7 +12873,7 @@
 mso-no-proof:yes'>.</span><span lang=EN-US style='mso-ansi-language:EN-US'><o:p></o:p></span></p>
 
 <p style='margin-top:5.0pt;margin-right:0cm;margin-bottom:0cm;margin-left:36.0pt;
-margin-bottom:.0001pt;text-indent:-18.0pt;mso-list:l28 level1 lfo36;tab-stops:
+margin-bottom:.0001pt;text-indent:-18.0pt;mso-list:l28 level1 lfo37;tab-stops:
 45.8pt 91.6pt 137.4pt 183.2pt 229.0pt 274.8pt 320.6pt 366.4pt 412.2pt 458.0pt 503.8pt 549.6pt 595.4pt 641.2pt 687.0pt 732.8pt'><![if !supportLists]><span
 lang=EN-US style='font-size:10.0pt;font-family:Symbol;mso-fareast-font-family:
 Symbol;mso-bidi-font-family:Symbol;mso-ansi-language:EN-US'><span
@@ -13196,8 +13247,8 @@
   mso-border-top-themecolor:accent1;border-left:none;border-bottom:solid #4F81BD 1.0pt;
   mso-border-bottom-themecolor:accent1;border-right:none;padding:0cm 5.4pt 0cm 5.4pt'>
   <p style='margin-bottom:0cm;margin-bottom:.0001pt;tab-stops:45.8pt 91.6pt 137.4pt 183.2pt 229.0pt 274.8pt 320.6pt 366.4pt 412.2pt 458.0pt 503.8pt 549.6pt 595.4pt 641.2pt 687.0pt 732.8pt;
-  mso-yfti-cnfc:64'><span lang=EN style='mso-ansi-language:EN'>Calls lazily --Action1
-  / Action1--.<o:p></o:p></span></p>
+  mso-yfti-cnfc:64'><span lang=EN style='mso-ansi-language:EN'>Calls lazily
+  --Action1 / Action1--.<o:p></o:p></span></p>
   </td>
   <td width=437 valign=top style='width:262.25pt;border-top:solid #4F81BD 1.0pt;
   mso-border-top-themecolor:accent1;border-left:none;border-bottom:solid #4F81BD 1.0pt;
@@ -13637,7 +13688,8 @@
   mso-border-top-themecolor:accent1;border-left:none;border-bottom:solid #4F81BD 1.0pt;
   mso-border-bottom-themecolor:accent1;border-right:none;padding:0cm 5.4pt 0cm 5.4pt'>
   <p style='margin-bottom:0cm;margin-bottom:.0001pt;tab-stops:45.8pt 91.6pt 137.4pt 183.2pt 229.0pt 274.8pt 320.6pt 366.4pt 412.2pt 458.0pt 503.8pt 549.6pt 595.4pt 641.2pt 687.0pt 732.8pt;
-  mso-yfti-cnfc:64'><span lang=EN style='mso-ansi-language:EN'>Action1() [Action2()]<o:p></o:p></span></p>
+  mso-yfti-cnfc:64'><span lang=EN style='mso-ansi-language:EN'>Action1()
+  [Action2()]<o:p></o:p></span></p>
   </td>
   <td width=248 valign=top style='width:148.85pt;border:solid #4F81BD 1.0pt;
   mso-border-themecolor:accent1;border-left:none;padding:0cm 5.4pt 0cm 5.4pt'>
@@ -13793,7 +13845,8 @@
   mso-border-top-themecolor:accent1;border-left:none;border-bottom:solid #4F81BD 1.0pt;
   mso-border-bottom-themecolor:accent1;border-right:none;padding:0cm 5.4pt 0cm 5.4pt'>
   <p class=MsoNormal style='mso-yfti-cnfc:64'><span lang=EN style='mso-fareast-font-family:
-  "Times New Roman";mso-ansi-language:EN'>[Source_<0>() == Event_<1>()]<o:p></o:p></span></p>
+  "Times New Roman";mso-ansi-language:EN'>[Source_<0>() ==
+  Event_<1>()]<o:p></o:p></span></p>
   </td>
   <td width=248 valign=top style='width:148.85pt;border:solid #4F81BD 1.0pt;
   mso-border-themecolor:accent1;border-left:none;padding:0cm 5.4pt 0cm 5.4pt'>
@@ -13809,8 +13862,8 @@
   </td>
   <td width=437 valign=top style='width:262.25pt;border:none;padding:0cm 5.4pt 0cm 5.4pt'>
   <p style='margin-bottom:0cm;margin-bottom:.0001pt;tab-stops:45.8pt 91.6pt 137.4pt 183.2pt 229.0pt 274.8pt 320.6pt 366.4pt 412.2pt 458.0pt 503.8pt 549.6pt 595.4pt 641.2pt 687.0pt 732.8pt'><span
-  lang=EN style='mso-ansi-language:EN'>Returns the some_int attribute of the
-  source state from the currently triggered transition.<o:p></o:p></span></p>
+  lang=EN style='mso-ansi-language:EN'>Returns the some_int attribute of the source
+  state from the currently triggered transition.<o:p></o:p></span></p>
   </td>
   <td width=437 valign=top style='width:262.25pt;border:none;padding:0cm 5.4pt 0cm 5.4pt'>
   <p class=MsoNormal><span lang=EN-US style='mso-fareast-font-family:"Times New Roman";
@@ -13832,8 +13885,9 @@
   mso-border-top-themecolor:accent1;border-left:none;border-bottom:solid #4F81BD 1.0pt;
   mso-border-bottom-themecolor:accent1;border-right:none;padding:0cm 5.4pt 0cm 5.4pt'>
   <p style='margin-bottom:0cm;margin-bottom:.0001pt;tab-stops:45.8pt 91.6pt 137.4pt 183.2pt 229.0pt 274.8pt 320.6pt 366.4pt 412.2pt 458.0pt 503.8pt 549.6pt 595.4pt 641.2pt 687.0pt 732.8pt;
-  mso-yfti-cnfc:64'><span lang=EN style='mso-ansi-language:EN'>Returns the some_int
-  attribute of the target state from the currently triggered transition.<o:p></o:p></span></p>
+  mso-yfti-cnfc:64'><span lang=EN style='mso-ansi-language:EN'>Returns the
+  some_int attribute of the target state from the currently triggered
+  transition.<o:p></o:p></span></p>
   </td>
   <td width=437 valign=top style='width:262.25pt;border-top:solid #4F81BD 1.0pt;
   mso-border-top-themecolor:accent1;border-left:none;border-bottom:solid #4F81BD 1.0pt;
@@ -13902,8 +13956,9 @@
   </td>
   <td width=437 valign=top style='width:262.25pt;border:none;padding:0cm 5.4pt 0cm 5.4pt'>
   <p style='margin-bottom:0cm;margin-bottom:.0001pt;tab-stops:45.8pt 91.6pt 137.4pt 183.2pt 229.0pt 274.8pt 320.6pt 366.4pt 412.2pt 458.0pt 503.8pt 549.6pt 595.4pt 641.2pt 687.0pt 732.8pt'><span
-  lang=EN style='mso-ansi-language:EN'>Returns the some_int attribute of the current
-  state machine (valid inside an entry/exit state action or a transition).<o:p></o:p></span></p>
+  lang=EN style='mso-ansi-language:EN'>Returns the some_int attribute of the
+  current state machine (valid inside an entry/exit state action or a
+  transition).<o:p></o:p></span></p>
   </td>
   <td width=437 valign=top style='width:262.25pt;border:none;padding:0cm 5.4pt 0cm 5.4pt'>
   <p class=MsoNormal><span lang=EN-US style='mso-fareast-font-family:"Times New Roman";
@@ -13925,8 +13980,8 @@
   mso-border-top-themecolor:accent1;border-left:none;border-bottom:solid #4F81BD 1.0pt;
   mso-border-bottom-themecolor:accent1;border-right:none;padding:0cm 5.4pt 0cm 5.4pt'>
   <p style='margin-bottom:0cm;margin-bottom:.0001pt;tab-stops:45.8pt 91.6pt 137.4pt 183.2pt 229.0pt 274.8pt 320.6pt 366.4pt 412.2pt 458.0pt 503.8pt 549.6pt 595.4pt 641.2pt 687.0pt 732.8pt;
-  mso-yfti-cnfc:64'><span lang=EN style='mso-ansi-language:EN'>Wrappers around
-  the value some_int<o:p></o:p></span></p>
+  mso-yfti-cnfc:64'><span lang=EN style='mso-ansi-language:EN'>Wrappers around the
+  value some_int<o:p></o:p></span></p>
   </td>
   <td width=437 valign=top style='width:262.25pt;border-top:solid #4F81BD 1.0pt;
   mso-border-top-themecolor:accent1;border-left:none;border-bottom:solid #4F81BD 1.0pt;
@@ -14019,8 +14074,8 @@
   mso-border-bottom-themecolor:accent1;border-right:none;padding:0cm 5.4pt 0cm 5.4pt'>
   <p style='margin-bottom:0cm;margin-bottom:.0001pt;tab-stops:45.8pt 91.6pt 137.4pt 183.2pt 229.0pt 274.8pt 320.6pt 366.4pt 412.2pt 458.0pt 503.8pt 549.6pt 595.4pt 641.2pt 687.0pt 732.8pt;
   mso-yfti-cnfc:64'><span lang=EN style='mso-ansi-language:EN'>Processes Event
-  on the current state machine (if no fsm specified) or on up to 4 state
-  machines returned by an appropriate functor.<o:p></o:p></span></p>
+  on the current state machine (if no fsm specified) or on up to 4 state machines
+  returned by an appropriate functor.<o:p></o:p></span></p>
   </td>
   <td width=437 valign=top style='width:262.25pt;border-top:solid #4F81BD 1.0pt;
   mso-border-top-themecolor:accent1;border-left:none;border-bottom:solid #4F81BD 1.0pt;
@@ -14241,9 +14296,9 @@
   mso-border-top-themecolor:accent1;border-left:none;border-bottom:solid #4F81BD 1.0pt;
   mso-border-bottom-themecolor:accent1;border-right:none;padding:0cm 5.4pt 0cm 5.4pt'>
   <p style='margin-bottom:0cm;margin-bottom:.0001pt;tab-stops:45.8pt 91.6pt 137.4pt 183.2pt 229.0pt 274.8pt 320.6pt 366.4pt 412.2pt 458.0pt 503.8pt 549.6pt 595.4pt 641.2pt 687.0pt 732.8pt;
-  mso-yfti-cnfc:64'><span lang=EN style='mso-ansi-language:EN'>Returns the
-  current state machine (as reference). Valid inside a state entry/exit action
-  or a transition.<o:p></o:p></span></p>
+  mso-yfti-cnfc:64'><span lang=EN style='mso-ansi-language:EN'>Returns the current
+  state machine (as reference). Valid inside a state entry/exit action or a
+  transition.<o:p></o:p></span></p>
   </td>
   <td width=437 valign=top style='width:262.25pt;border-top:solid #4F81BD 1.0pt;
   mso-border-top-themecolor:accent1;border-left:none;border-bottom:solid #4F81BD 1.0pt;
@@ -14251,8 +14306,8 @@
   <p class=MsoNormal style='mso-yfti-cnfc:64'><span lang=EN style='mso-fareast-font-family:
   "Times New Roman";mso-ansi-language:EN'>++attribute_(fsm_(),Int_<0>())<o:p></o:p></span></p>
   <p class=MsoNormal style='mso-yfti-cnfc:64'><span lang=EN style='mso-fareast-font-family:
-  "Times New Roman";mso-ansi-language:EN'>Preincrements the first attribute of the
-  current state machine<o:p></o:p></span></p>
+  "Times New Roman";mso-ansi-language:EN'>Preincrements the first attribute of
+  the current state machine<o:p></o:p></span></p>
   </td>
   <td width=248 valign=top style='width:148.85pt;border:solid #4F81BD 1.0pt;
   mso-border-themecolor:accent1;border-left:none;padding:0cm 5.4pt 0cm 5.4pt'>
@@ -14554,12 +14609,12 @@
 lang=EN-US style='mso-ansi-language:EN-US'><o:p></o:p></span></p>
 
 <p style='margin-bottom:0cm;margin-bottom:.0001pt;tab-stops:45.8pt 91.6pt 137.4pt 183.2pt 229.0pt 274.8pt 320.6pt 366.4pt 412.2pt 458.0pt 503.8pt 549.6pt 595.4pt 641.2pt 687.0pt 732.8pt'><span
-lang=EN-US style='mso-ansi-language:EN-US'>Your functors will usually not need
-this. You will only need these extra declarations if your functors are to be
-used in combination with eUML functions (if_then_else_ , STL algorithms) or
-operators returning a value (++, +=, etc.). If you simply need simple guards
-/actions like [Condition1() && Condition2()] / (Action1(),Action2()),
-you do not need to declare the return type.<o:p></o:p></span></p>
+lang=EN-US style='mso-ansi-language:EN-US'>Your functors will usually not need this.
+You will only need these extra declarations if your functors are to be used in
+combination with eUML functions (if_then_else_ , STL algorithms) or operators
+returning a value (++, +=, etc.). If you simply need simple guards /actions
+like [Condition1() && Condition2()] / (Action1(),Action2()), you do not
+need to declare the return type.<o:p></o:p></span></p>
 
 <p style='margin-bottom:0cm;margin-bottom:.0001pt;tab-stops:45.8pt 91.6pt 137.4pt 183.2pt 229.0pt 274.8pt 320.6pt 366.4pt 412.2pt 458.0pt 503.8pt 549.6pt 595.4pt 641.2pt 687.0pt 732.8pt'><span
 lang=EN-US style='mso-ansi-language:EN-US'>This declaration is not very nice
@@ -14584,7 +14639,7 @@
 programming paradigm, for example:<o:p></o:p></span></p>
 
 <p style='margin-top:5.0pt;margin-right:0cm;margin-bottom:0cm;margin-left:36.0pt;
-margin-bottom:.0001pt;text-indent:-18.0pt;mso-list:l26 level1 lfo37;tab-stops:
+margin-bottom:.0001pt;text-indent:-18.0pt;mso-list:l26 level1 lfo38;tab-stops:
 45.8pt 91.6pt 137.4pt 183.2pt 229.0pt 274.8pt 320.6pt 366.4pt 412.2pt 458.0pt 503.8pt 549.6pt 595.4pt 641.2pt 687.0pt 732.8pt'><![if !supportLists]><span
 lang=EN-US style='mso-fareast-font-family:"Times New Roman";mso-ansi-language:
 EN-US'><span style='mso-list:Ignore'>-<span style='font:7.0pt "Times New Roman"'>       
@@ -14592,7 +14647,7 @@
 end_(container): returns iterators of a container.<o:p></o:p></span></p>
 
 <p style='margin-top:5.0pt;margin-right:0cm;margin-bottom:0cm;margin-left:36.0pt;
-margin-bottom:.0001pt;text-indent:-18.0pt;mso-list:l26 level1 lfo37;tab-stops:
+margin-bottom:.0001pt;text-indent:-18.0pt;mso-list:l26 level1 lfo38;tab-stops:
 45.8pt 91.6pt 137.4pt 183.2pt 229.0pt 274.8pt 320.6pt 366.4pt 412.2pt 458.0pt 503.8pt 549.6pt 595.4pt 641.2pt 687.0pt 732.8pt'><![if !supportLists]><span
 lang=EN-US style='mso-fareast-font-family:"Times New Roman";mso-ansi-language:
 EN-US'><span style='mso-list:Ignore'>-<span style='font:7.0pt "Times New Roman"'>       
@@ -14600,7 +14655,7 @@
 returns container.empty()<o:p></o:p></span></p>
 
 <p style='margin-top:5.0pt;margin-right:0cm;margin-bottom:0cm;margin-left:36.0pt;
-margin-bottom:.0001pt;text-indent:-18.0pt;mso-list:l26 level1 lfo37;tab-stops:
+margin-bottom:.0001pt;text-indent:-18.0pt;mso-list:l26 level1 lfo38;tab-stops:
 45.8pt 91.6pt 137.4pt 183.2pt 229.0pt 274.8pt 320.6pt 366.4pt 412.2pt 458.0pt 503.8pt 549.6pt 595.4pt 641.2pt 687.0pt 732.8pt'><![if !supportLists]><span
 lang=EN-US style='mso-fareast-font-family:"Times New Roman";mso-ansi-language:
 EN-US'><span style='mso-list:Ignore'>-<span style='font:7.0pt "Times New Roman"'>       
@@ -14608,7 +14663,7 @@
 container.clear()<o:p></o:p></span></p>
 
 <p style='margin-top:5.0pt;margin-right:0cm;margin-bottom:0cm;margin-left:36.0pt;
-margin-bottom:.0001pt;text-indent:-18.0pt;mso-list:l26 level1 lfo37;tab-stops:
+margin-bottom:.0001pt;text-indent:-18.0pt;mso-list:l26 level1 lfo38;tab-stops:
 45.8pt 91.6pt 137.4pt 183.2pt 229.0pt 274.8pt 320.6pt 366.4pt 412.2pt 458.0pt 503.8pt 549.6pt 595.4pt 641.2pt 687.0pt 732.8pt'><![if !supportLists]><span
 lang=EN-US style='mso-fareast-font-family:"Times New Roman";mso-ansi-language:
 EN-US'><span style='mso-list:Ignore'>-<span style='font:7.0pt "Times New Roman"'>       
@@ -14619,12 +14674,12 @@
 lang=EN-US style='mso-ansi-language:EN-US'><o:p> </o:p></span></p>
 
 <p style='margin-bottom:0cm;margin-bottom:.0001pt;tab-stops:45.8pt 91.6pt 137.4pt 183.2pt 229.0pt 274.8pt 320.6pt 366.4pt 412.2pt 458.0pt 503.8pt 549.6pt 595.4pt 641.2pt 687.0pt 732.8pt'><span
-lang=EN-US style='mso-ansi-language:EN-US'>In a nutshell, almost every STL method
-or algorithm is matched by a corresponding functor, which can then be used in
-the transition table or state actions. The following tables explain in detail
-the possible argument combination and the underlying functor, so that this
-possibility is not reserved to eUML but also to the functor-based front-end
-previously explained.<o:p></o:p></span></p>
+lang=EN-US style='mso-ansi-language:EN-US'>In a nutshell, almost every STL
+method or algorithm is matched by a corresponding functor, which can then be
+used in the transition table or state actions. The following tables explain in
+detail the possible argument combination and the underlying functor, so that
+this possibility is not reserved to eUML but also to the functor-based
+front-end previously explained.<o:p></o:p></span></p>
 
 <p style='margin-bottom:0cm;margin-bottom:.0001pt;tab-stops:45.8pt 91.6pt 137.4pt 183.2pt 229.0pt 274.8pt 320.6pt 366.4pt 412.2pt 458.0pt 503.8pt 549.6pt 595.4pt 641.2pt 687.0pt 732.8pt'><span
 lang=EN-US style='mso-ansi-language:EN-US'>The file structure of this
@@ -14689,8 +14744,8 @@
 lang=EN style='mso-ansi-language:EN'><o:p> </o:p></span></p>
 
 <p style='margin-bottom:0cm;margin-bottom:.0001pt;tab-stops:45.8pt 91.6pt 137.4pt 183.2pt 229.0pt 274.8pt 320.6pt 366.4pt 412.2pt 458.0pt 503.8pt 549.6pt 595.4pt 641.2pt 687.0pt 732.8pt'><span
-lang=EN style='mso-ansi-language:EN'>Or one can simply include the whole STL
-support (you will also need to include euml.hpp):<o:p></o:p></span></p>
+lang=EN style='mso-ansi-language:EN'>Or one can simply include the whole STL support
+(you will also need to include euml.hpp):<o:p></o:p></span></p>
 
 <p class=MsoNormal style='margin-top:12.0pt;margin-right:36.45pt;margin-bottom:
 0cm;margin-left:36.45pt;margin-bottom:.0001pt;tab-stops:45.8pt 91.6pt 137.4pt 183.2pt 229.0pt 274.8pt 320.6pt 366.4pt 412.2pt 458.0pt 503.8pt 549.6pt 595.4pt 641.2pt 687.0pt 732.8pt'><span
@@ -15826,8 +15881,8 @@
   </td>
   <td width=437 valign=top style='width:262.25pt;border:none;border-bottom:
   solid #4F81BD 1.0pt;mso-border-bottom-themecolor:accent1;padding:0cm 5.4pt 0cm 5.4pt'>
-  <p class=MsoNormal><span lang=EN style='mso-ansi-language:EN'>rotate_(first, middle,
-  last)ᵇ<o:p></o:p></span></p>
+  <p class=MsoNormal><span lang=EN style='mso-ansi-language:EN'>rotate_(first,
+  middle, last)ᵇ<o:p></o:p></span></p>
   </td>
   <td width=248 valign=top style='width:148.85pt;border-top:none;border-left:
   none;border-bottom:solid #4F81BD 1.0pt;mso-border-bottom-themecolor:accent1;
@@ -16578,8 +16633,8 @@
   EN'>void erase(pos)<o:p></o:p></span></b></p>
   </td>
   <td width=437 valign=top style='width:262.25pt;border:none;padding:0cm 5.4pt 0cm 5.4pt'>
-  <p class=MsoNormal><span lang=EN style='mso-ansi-language:EN'>void associative_erase_(
-  container , pos)<o:p></o:p></span></p>
+  <p class=MsoNormal><span lang=EN style='mso-ansi-language:EN'>void
+  associative_erase_( container , pos)<o:p></o:p></span></p>
   </td>
   <td width=248 valign=top style='width:148.85pt;border:none;border-right:solid #4F81BD 1.0pt;
   mso-border-right-themecolor:accent1;padding:0cm 5.4pt 0cm 5.4pt'>
@@ -16831,8 +16886,8 @@
   EN'>int compare(string)<o:p></o:p></span></b></p>
   </td>
   <td width=437 valign=top style='width:262.25pt;border:none;padding:0cm 5.4pt 0cm 5.4pt'>
-  <p class=MsoNormal><span lang=EN style='mso-ansi-language:EN'>int string_compare_(container,
-  another_string)<o:p></o:p></span></p>
+  <p class=MsoNormal><span lang=EN style='mso-ansi-language:EN'>int
+  string_compare_(container, another_string)<o:p></o:p></span></p>
   </td>
   <td width=248 valign=top style='width:148.85pt;border:none;border-right:solid #4F81BD 1.0pt;
   mso-border-right-themecolor:accent1;padding:0cm 5.4pt 0cm 5.4pt'>
@@ -16902,8 +16957,8 @@
   EN'>string& append(const string&)<o:p></o:p></span></b></p>
   </td>
   <td width=437 valign=top style='width:262.25pt;border:none;padding:0cm 5.4pt 0cm 5.4pt'>
-  <p class=MsoNormal><span lang=EN style='mso-ansi-language:EN'>string& append_(container,
-  another_string)<o:p></o:p></span></p>
+  <p class=MsoNormal><span lang=EN style='mso-ansi-language:EN'>string&
+  append_(container, another_string)<o:p></o:p></span></p>
   </td>
   <td width=248 valign=top style='width:148.85pt;border:none;border-right:solid #4F81BD 1.0pt;
   mso-border-right-themecolor:accent1;padding:0cm 5.4pt 0cm 5.4pt'>
@@ -17286,8 +17341,8 @@
   <td width=437 valign=top style='width:261.95pt;border:solid #4F81BD 1.0pt;
   mso-border-themecolor:accent1;border-right:none;padding:0cm 5.4pt 0cm 5.4pt'>
   <p class=MsoNormal style='mso-yfti-cnfc:68'><b><span lang=EN
-  style='mso-ansi-language:EN'>string& replace(iterator first, iterator
-  last, const charT*, size_type n)<o:p></o:p></span></b></p>
+  style='mso-ansi-language:EN'>string& replace(iterator first, iterator last,
+  const charT*, size_type n)<o:p></o:p></span></b></p>
   </td>
   <td width=437 valign=top style='width:262.25pt;border-top:solid #4F81BD 1.0pt;
   mso-border-top-themecolor:accent1;border-left:none;border-bottom:solid #4F81BD 1.0pt;
@@ -17308,8 +17363,8 @@
   EN'>string& replace(iterator first, iterator last, const charT*)<o:p></o:p></span></b></p>
   </td>
   <td width=437 valign=top style='width:262.25pt;border:none;padding:0cm 5.4pt 0cm 5.4pt'>
-  <p class=MsoNormal><span lang=EN style='mso-ansi-language:EN'>string& string_replace_(container,
-  first, last, another_string)<o:p></o:p></span></p>
+  <p class=MsoNormal><span lang=EN style='mso-ansi-language:EN'>string&
+  string_replace_(container, first, last, another_string)<o:p></o:p></span></p>
   </td>
   <td width=248 valign=top style='width:148.85pt;border:none;border-right:solid #4F81BD 1.0pt;
   mso-border-right-themecolor:accent1;padding:0cm 5.4pt 0cm 5.4pt'>
@@ -17343,8 +17398,8 @@
   l)<o:p></o:p></span></b></p>
   </td>
   <td width=437 valign=top style='width:262.25pt;border:none;padding:0cm 5.4pt 0cm 5.4pt'>
-  <p class=MsoNormal><span lang=EN style='mso-ansi-language:EN'>string&
-  string_replace_(container, first, last, f, l)<o:p></o:p></span></p>
+  <p class=MsoNormal><span lang=EN style='mso-ansi-language:EN'>string& string_replace_(container,
+  first, last, f, l)<o:p></o:p></span></p>
   </td>
   <td width=248 valign=top style='width:148.85pt;border:none;border-right:solid #4F81BD 1.0pt;
   mso-border-right-themecolor:accent1;padding:0cm 5.4pt 0cm 5.4pt'>
@@ -17376,7 +17431,8 @@
   EN'>const charT* data()<o:p></o:p></span></b></p>
   </td>
   <td width=437 valign=top style='width:262.25pt;border:none;padding:0cm 5.4pt 0cm 5.4pt'>
-  <p class=MsoNormal><span lang=EN style='mso-ansi-language:EN'>const charT* string_data_(container)<o:p></o:p></span></p>
+  <p class=MsoNormal><span lang=EN style='mso-ansi-language:EN'>const charT*
+  string_data_(container)<o:p></o:p></span></p>
   </td>
   <td width=248 valign=top style='width:148.85pt;border:none;border-right:solid #4F81BD 1.0pt;
   mso-border-right-themecolor:accent1;padding:0cm 5.4pt 0cm 5.4pt'>
@@ -17387,8 +17443,8 @@
   <td width=437 valign=top style='width:261.95pt;border:solid #4F81BD 1.0pt;
   mso-border-themecolor:accent1;border-right:none;padding:0cm 5.4pt 0cm 5.4pt'>
   <p class=MsoNormal style='mso-yfti-cnfc:68'><b><span lang=EN
-  style='mso-ansi-language:EN'>size_type copy(charT* buf, size_type n,
-  size_type pos = 0)<o:p></o:p></span></b></p>
+  style='mso-ansi-language:EN'>size_type copy(charT* buf, size_type n, size_type
+  pos = 0)<o:p></o:p></span></b></p>
   </td>
   <td width=437 valign=top style='width:262.25pt;border-top:solid #4F81BD 1.0pt;
   mso-border-top-themecolor:accent1;border-left:none;border-bottom:solid #4F81BD 1.0pt;
@@ -17448,8 +17504,8 @@
   <td width=437 valign=top style='width:262.25pt;border:none;padding:0cm 5.4pt 0cm 5.4pt'>
   <p class=MsoNormal><span lang=EN style='mso-ansi-language:EN'>size_type
   string_find_(container, s, pos)<o:p></o:p></span></p>
-  <p class=MsoNormal><span lang=EN style='mso-ansi-language:EN'>size_type
-  string_find_(container, s)<o:p></o:p></span></p>
+  <p class=MsoNormal><span lang=EN style='mso-ansi-language:EN'>size_type string_find_(container,
+  s)<o:p></o:p></span></p>
   </td>
   <td width=248 valign=top style='width:148.85pt;border:none;border-right:solid #4F81BD 1.0pt;
   mso-border-right-themecolor:accent1;padding:0cm 5.4pt 0cm 5.4pt'>
@@ -17483,8 +17539,8 @@
   EN'>size_type rfind(charT* s, size_type pos, size_type n)<o:p></o:p></span></b></p>
   </td>
   <td width=437 valign=top style='width:262.25pt;border:none;padding:0cm 5.4pt 0cm 5.4pt'>
-  <p class=MsoNormal><span lang=EN style='mso-ansi-language:EN'>size_type
-  string_rfind_(container, s, pos, n)<o:p></o:p></span></p>
+  <p class=MsoNormal><span lang=EN style='mso-ansi-language:EN'>size_type string_rfind_(container,
+  s, pos, n)<o:p></o:p></span></p>
   </td>
   <td width=248 valign=top style='width:148.85pt;border:none;border-right:solid #4F81BD 1.0pt;
   mso-border-right-themecolor:accent1;padding:0cm 5.4pt 0cm 5.4pt'>
@@ -17591,8 +17647,8 @@
   EN'>size_type find_first_of (const string& s, size_type pos=0)<o:p></o:p></span></b></p>
   </td>
   <td width=437 valign=top style='width:262.25pt;border:none;padding:0cm 5.4pt 0cm 5.4pt'>
-  <p class=MsoNormal><span lang=EN style='mso-ansi-language:EN'>size_type find_first_of_(container,
-  s, pos)<o:p></o:p></span></p>
+  <p class=MsoNormal><span lang=EN style='mso-ansi-language:EN'>size_type
+  find_first_of_(container, s, pos)<o:p></o:p></span></p>
   <p class=MsoNormal><span lang=EN style='mso-ansi-language:EN'>size_type
   find_first_of_(container, s)<o:p></o:p></span></p>
   </td>
@@ -17605,8 +17661,7 @@
   <td width=437 valign=top style='width:261.95pt;border:solid #4F81BD 1.0pt;
   mso-border-themecolor:accent1;border-right:none;padding:0cm 5.4pt 0cm 5.4pt'>
   <p class=MsoNormal style='mso-yfti-cnfc:68'><b><span lang=EN
-  style='mso-ansi-language:EN'>size_type find_first_of (charT c, size_type
-  pos=0)<o:p></o:p></span></b></p>
+  style='mso-ansi-language:EN'>size_type find_first_of (charT c, size_type pos=0)<o:p></o:p></span></b></p>
   </td>
   <td width=437 valign=top style='width:262.25pt;border-top:solid #4F81BD 1.0pt;
   mso-border-top-themecolor:accent1;border-left:none;border-bottom:solid #4F81BD 1.0pt;
@@ -17665,8 +17720,8 @@
   EN'>size_type find_first_not_of (const string& s, size_type pos=0)<o:p></o:p></span></b></p>
   </td>
   <td width=437 valign=top style='width:262.25pt;border:none;padding:0cm 5.4pt 0cm 5.4pt'>
-  <p class=MsoNormal><span lang=EN style='mso-ansi-language:EN'>size_type
-  find_first_not_of_(container, s, pos)<o:p></o:p></span></p>
+  <p class=MsoNormal><span lang=EN style='mso-ansi-language:EN'>size_type find_first_not_of_(container,
+  s, pos)<o:p></o:p></span></p>
   <p class=MsoNormal><span lang=EN style='mso-ansi-language:EN'>size_type
   find_first_not_of_(container, s)<o:p></o:p></span></p>
   </td>
@@ -17703,8 +17758,8 @@
   EN'>size_type find_last_of(charT* s, size_type pos, size_type n)<o:p></o:p></span></b></p>
   </td>
   <td width=437 valign=top style='width:262.25pt;border:none;padding:0cm 5.4pt 0cm 5.4pt'>
-  <p class=MsoNormal><span lang=EN style='mso-ansi-language:EN'>size_type find_last_of_(container,
-  s, pos, n)<o:p></o:p></span></p>
+  <p class=MsoNormal><span lang=EN style='mso-ansi-language:EN'>size_type
+  find_last_of_(container, s, pos, n)<o:p></o:p></span></p>
   </td>
   <td width=248 valign=top style='width:148.85pt;border:none;border-right:solid #4F81BD 1.0pt;
   mso-border-right-themecolor:accent1;padding:0cm 5.4pt 0cm 5.4pt'>
@@ -17789,7 +17844,8 @@
   <td width=437 valign=top style='width:261.95pt;border:solid #4F81BD 1.0pt;
   mso-border-themecolor:accent1;border-right:none;padding:0cm 5.4pt 0cm 5.4pt'>
   <p class=MsoNormal style='mso-yfti-cnfc:68'><b><span lang=EN
-  style='mso-ansi-language:EN'>size_type find_last_not_of (charT* s, size_type pos=npos)<o:p></o:p></span></b></p>
+  style='mso-ansi-language:EN'>size_type find_last_not_of (charT* s, size_type
+  pos=npos)<o:p></o:p></span></b></p>
   </td>
   <td width=437 valign=top style='width:262.25pt;border-top:solid #4F81BD 1.0pt;
   mso-border-top-themecolor:accent1;border-left:none;border-bottom:solid #4F81BD 1.0pt;
@@ -17814,8 +17870,8 @@
   <td width=437 valign=top style='width:262.25pt;border:none;padding:0cm 5.4pt 0cm 5.4pt'>
   <p class=MsoNormal><span lang=EN style='mso-ansi-language:EN'>size_type
   find_last_not_of_(container, s, pos)<o:p></o:p></span></p>
-  <p class=MsoNormal><span lang=EN style='mso-ansi-language:EN'>size_type find_last_not_of_(container,
-  s)<o:p></o:p></span></p>
+  <p class=MsoNormal><span lang=EN style='mso-ansi-language:EN'>size_type
+  find_last_not_of_(container, s)<o:p></o:p></span></p>
   </td>
   <td width=248 valign=top style='width:148.85pt;border:none;border-right:solid #4F81BD 1.0pt;
   mso-border-right-themecolor:accent1;padding:0cm 5.4pt 0cm 5.4pt'>
@@ -17883,13 +17939,13 @@
 lang=EN-US style='mso-ansi-language:EN-US'><o:p> </o:p></span></p>
 
 <p class=MsoNormal style='tab-stops:45.8pt 91.6pt 137.4pt 183.2pt 229.0pt 274.8pt 320.6pt 366.4pt 412.2pt 458.0pt 503.8pt 549.6pt 595.4pt 641.2pt 687.0pt 732.8pt'><span
-lang=EN-US style='mso-ansi-language:EN-US'>EUML provides two macros (sorry
-about that) to convert a function or method into a eUML-compatible functor for
-use in action / guard declarations.<o:p></o:p></span></p>
+lang=EN-US style='mso-ansi-language:EN-US'>EUML provides two macros (sorry about
+that) to convert a function or method into a eUML-compatible functor for use in
+action / guard declarations.<o:p></o:p></span></p>
 
 <p class=MsoNormal style='tab-stops:45.8pt 91.6pt 137.4pt 183.2pt 229.0pt 274.8pt 320.6pt 366.4pt 412.2pt 458.0pt 503.8pt 549.6pt 595.4pt 641.2pt 687.0pt 732.8pt'><span
-lang=EN-US style='mso-ansi-language:EN-US'>Let’s suppose we wrote a function
-printing the typeid of its parameter:<o:p></o:p></span></p>
+lang=EN-US style='mso-ansi-language:EN-US'>Let’s suppose we wrote a
+function printing the typeid of its parameter:<o:p></o:p></span></p>
 
 <p class=MsoNormal style='tab-stops:45.8pt 91.6pt 137.4pt 183.2pt 229.0pt 274.8pt 320.6pt 366.4pt 412.2pt 458.0pt 503.8pt 549.6pt 595.4pt 641.2pt 687.0pt 732.8pt;
 mso-layout-grid-align:none;text-autospace:none'><span lang=EN-US
@@ -18011,13 +18067,13 @@
 <p class=MsoNormal style='tab-stops:45.8pt 91.6pt 137.4pt 183.2pt 229.0pt 274.8pt 320.6pt 366.4pt 412.2pt 458.0pt 503.8pt 549.6pt 595.4pt 641.2pt 687.0pt 732.8pt;
 mso-layout-grid-align:none;text-autospace:none'><span lang=EN-US
 style='font-size:10.0pt;font-family:"Courier New";mso-fareast-font-family:"Times New Roman";
-mso-ansi-language:EN-US;mso-no-proof:yes'><span style='mso-spacerun:yes'> 
-</span><span style='mso-spacerun:yes'>  </span><span
-style='color:blue'>int</span> <span style='color:#030003'>foo</span>(<span
-style='color:blue'>int</span> <span style='color:#030003'>i</span>)<span
-style='color:blue'>const</span> {<span style='color:#030003'>std</span>::<span
-style='color:#030003'>cout</span> << <span style='color:#A31515'>"foo(int):"</span>
-<< <span style='color:#030003'>i</span> << <span style='color:#030003'>std</span>::<span
+mso-ansi-language:EN-US;mso-no-proof:yes'><span
+style='mso-spacerun:yes'>    </span><span style='color:blue'>int</span>
+<span style='color:#030003'>foo</span>(<span style='color:blue'>int</span> <span
+style='color:#030003'>i</span>)<span style='color:blue'>const</span> {<span
+style='color:#030003'>std</span>::<span style='color:#030003'>cout</span>
+<< <span style='color:#A31515'>"foo(int):"</span> << <span
+style='color:#030003'>i</span> << <span style='color:#030003'>std</span>::<span
 style='color:#030003'>endl</span>; <span style='color:blue'>return</span> 1;}<o:p></o:p></span></p>
 
 <p class=MsoNormal style='tab-stops:45.8pt 91.6pt 137.4pt 183.2pt 229.0pt 274.8pt 320.6pt 366.4pt 412.2pt 458.0pt 503.8pt 549.6pt 595.4pt 641.2pt 687.0pt 732.8pt;
@@ -18102,8 +18158,8 @@
 
 <p class=MsoNormal style='tab-stops:45.8pt 91.6pt 137.4pt 183.2pt 229.0pt 274.8pt 320.6pt 366.4pt 412.2pt 458.0pt 503.8pt 549.6pt 595.4pt 641.2pt 687.0pt 732.8pt'><span
 lang=EN-US style='mso-ansi-language:EN-US'>We now have a way to bind a method
-of an event, state or state machine or a simple function with a nicer syntax than
-a normal bind.<o:p></o:p></span></p>
+of an event, state or state machine or a simple function with a nicer syntax
+than a normal bind.<o:p></o:p></span></p>
 
 <p class=MsoNormal style='tab-stops:45.8pt 91.6pt 137.4pt 183.2pt 229.0pt 274.8pt 320.6pt 366.4pt 412.2pt 458.0pt 503.8pt 549.6pt 595.4pt 641.2pt 687.0pt 732.8pt'><span
 lang=EN-US style='mso-ansi-language:EN-US'><o:p> </o:p></span></p>
@@ -18118,7 +18174,7 @@
 these new concepts faster:<o:p></o:p></span></p>
 
 <p style='margin-top:5.0pt;margin-right:0cm;margin-bottom:0cm;margin-left:36.0pt;
-margin-bottom:.0001pt;text-indent:-18.0pt;mso-list:l26 level1 lfo37;tab-stops:
+margin-bottom:.0001pt;text-indent:-18.0pt;mso-list:l26 level1 lfo38;tab-stops:
 45.8pt 91.6pt 137.4pt 183.2pt 229.0pt 274.8pt 320.6pt 366.4pt 412.2pt 458.0pt 503.8pt 549.6pt 595.4pt 641.2pt 687.0pt 732.8pt'><![if !supportLists]><span
 lang=EN-US style='mso-fareast-font-family:"Times New Roman";mso-ansi-language:
 EN-US'><span style='mso-list:Ignore'>-<span style='font:7.0pt "Times New Roman"'>       
@@ -18126,7 +18182,16 @@
 href="SimpleTutorialEuml.cpp">an eUML version of the simple tutorial</a><o:p></o:p></span></p>
 
 <p style='margin-top:5.0pt;margin-right:0cm;margin-bottom:0cm;margin-left:36.0pt;
-margin-bottom:.0001pt;text-indent:-18.0pt;mso-list:l26 level1 lfo37;tab-stops:
+margin-bottom:.0001pt;text-indent:-18.0pt;mso-list:l26 level1 lfo38;tab-stops:
+45.8pt 91.6pt 137.4pt 183.2pt 229.0pt 274.8pt 320.6pt 366.4pt 412.2pt 458.0pt 503.8pt 549.6pt 595.4pt 641.2pt 687.0pt 732.8pt'><![if !supportLists]><span
+lang=EN-US style='mso-fareast-font-family:"Times New Roman";mso-ansi-language:
+EN-US'><span style='mso-list:Ignore'>-<span style='font:7.0pt "Times New Roman"'>       
+</span></span></span><![endif]><span lang=EN-US style='mso-ansi-language:EN-US'><a
+href="SimpleTutorialEuml2.cpp">An eUML version of the simple tutorial
+(alternative syntax)</a><o:p></o:p></span></p>
+
+<p style='margin-top:5.0pt;margin-right:0cm;margin-bottom:0cm;margin-left:36.0pt;
+margin-bottom:.0001pt;text-indent:-18.0pt;mso-list:l26 level1 lfo38;tab-stops:
 45.8pt 91.6pt 137.4pt 183.2pt 229.0pt 274.8pt 320.6pt 366.4pt 412.2pt 458.0pt 503.8pt 549.6pt 595.4pt 641.2pt 687.0pt 732.8pt'><![if !supportLists]><span
 lang=EN-US style='mso-fareast-font-family:"Times New Roman";mso-ansi-language:
 EN-US'><span style='mso-list:Ignore'>-<span style='font:7.0pt "Times New Roman"'>       
@@ -18134,7 +18199,7 @@
 href="CompositeTutorialEuml.cpp">an eUML version of the composite tutorial</a><o:p></o:p></span></p>
 
 <p style='margin-top:5.0pt;margin-right:0cm;margin-bottom:0cm;margin-left:36.0pt;
-margin-bottom:.0001pt;text-indent:-18.0pt;mso-list:l26 level1 lfo37;tab-stops:
+margin-bottom:.0001pt;text-indent:-18.0pt;mso-list:l26 level1 lfo38;tab-stops:
 45.8pt 91.6pt 137.4pt 183.2pt 229.0pt 274.8pt 320.6pt 366.4pt 412.2pt 458.0pt 503.8pt 549.6pt 595.4pt 641.2pt 687.0pt 732.8pt'><![if !supportLists]><span
 lang=EN-US style='mso-fareast-font-family:"Times New Roman";mso-ansi-language:
 EN-US'><span style='mso-list:Ignore'>-<span style='font:7.0pt "Times New Roman"'>       
@@ -18142,7 +18207,7 @@
 href="DirectEntryEuml.cpp">an eUML version of the entry tutorial</a><o:p></o:p></span></p>
 
 <p style='margin-top:5.0pt;margin-right:0cm;margin-bottom:0cm;margin-left:36.0pt;
-margin-bottom:.0001pt;text-indent:-18.0pt;mso-list:l26 level1 lfo37;tab-stops:
+margin-bottom:.0001pt;text-indent:-18.0pt;mso-list:l26 level1 lfo38;tab-stops:
 45.8pt 91.6pt 137.4pt 183.2pt 229.0pt 274.8pt 320.6pt 366.4pt 412.2pt 458.0pt 503.8pt 549.6pt 595.4pt 641.2pt 687.0pt 732.8pt'><![if !supportLists]><span
 lang=EN-US style='mso-fareast-font-family:"Times New Roman";mso-ansi-language:
 EN-US'><span style='mso-list:Ignore'>-<span style='font:7.0pt "Times New Roman"'>       
@@ -18150,7 +18215,7 @@
 href="FlagsTutorialEuml.cpp">an eUML version of the flags tutorial</a><o:p></o:p></span></p>
 
 <p style='margin-top:5.0pt;margin-right:0cm;margin-bottom:0cm;margin-left:36.0pt;
-margin-bottom:.0001pt;text-indent:-18.0pt;mso-list:l26 level1 lfo37;tab-stops:
+margin-bottom:.0001pt;text-indent:-18.0pt;mso-list:l26 level1 lfo38;tab-stops:
 45.8pt 91.6pt 137.4pt 183.2pt 229.0pt 274.8pt 320.6pt 366.4pt 412.2pt 458.0pt 503.8pt 549.6pt 595.4pt 641.2pt 687.0pt 732.8pt'><![if !supportLists]><span
 lang=EN-US style='mso-fareast-font-family:"Times New Roman";mso-ansi-language:
 EN-US'><span style='mso-list:Ignore'>-<span style='font:7.0pt "Times New Roman"'>       
@@ -18158,7 +18223,7 @@
 href="HistoryEuml.cpp">an eUML version of the history tutorial</a><o:p></o:p></span></p>
 
 <p style='margin-top:5.0pt;margin-right:0cm;margin-bottom:0cm;margin-left:36.0pt;
-margin-bottom:.0001pt;text-indent:-18.0pt;mso-list:l26 level1 lfo37;tab-stops:
+margin-bottom:.0001pt;text-indent:-18.0pt;mso-list:l26 level1 lfo38;tab-stops:
 45.8pt 91.6pt 137.4pt 183.2pt 229.0pt 274.8pt 320.6pt 366.4pt 412.2pt 458.0pt 503.8pt 549.6pt 595.4pt 641.2pt 687.0pt 732.8pt'><![if !supportLists]><span
 lang=EN-US style='mso-fareast-font-family:"Times New Roman";mso-ansi-language:
 EN-US'><span style='mso-list:Ignore'>-<span style='font:7.0pt "Times New Roman"'>       
@@ -18167,7 +18232,7 @@
 tutorial</a><o:p></o:p></span></p>
 
 <p style='margin-top:5.0pt;margin-right:0cm;margin-bottom:0cm;margin-left:36.0pt;
-margin-bottom:.0001pt;text-indent:-18.0pt;mso-list:l26 level1 lfo37;tab-stops:
+margin-bottom:.0001pt;text-indent:-18.0pt;mso-list:l26 level1 lfo38;tab-stops:
 45.8pt 91.6pt 137.4pt 183.2pt 229.0pt 274.8pt 320.6pt 366.4pt 412.2pt 458.0pt 503.8pt 549.6pt 595.4pt 641.2pt 687.0pt 732.8pt'><![if !supportLists]><span
 lang=EN-US style='mso-fareast-font-family:"Times New Roman";mso-ansi-language:
 EN-US'><span style='mso-list:Ignore'>-<span style='font:7.0pt "Times New Roman"'>       
@@ -18175,7 +18240,7 @@
 href="AnonymousTutorialEuml.cpp">an eUML version of anonymous transitions</a><o:p></o:p></span></p>
 
 <p style='margin-top:5.0pt;margin-right:0cm;margin-bottom:0cm;margin-left:36.0pt;
-margin-bottom:.0001pt;text-indent:-18.0pt;mso-list:l26 level1 lfo37;tab-stops:
+margin-bottom:.0001pt;text-indent:-18.0pt;mso-list:l26 level1 lfo38;tab-stops:
 45.8pt 91.6pt 137.4pt 183.2pt 229.0pt 274.8pt 320.6pt 366.4pt 412.2pt 458.0pt 503.8pt 549.6pt 595.4pt 641.2pt 687.0pt 732.8pt'><![if !supportLists]><span
 lang=EN-US style='mso-fareast-font-family:"Times New Roman";mso-ansi-language:
 EN-US'><span style='mso-list:Ignore'>-<span style='font:7.0pt "Times New Roman"'>       
@@ -18201,19 +18266,18 @@
 
 <p style='tab-stops:45.8pt 91.6pt 137.4pt 183.2pt 229.0pt 274.8pt 320.6pt 366.4pt 412.2pt 458.0pt 503.8pt 549.6pt 595.4pt 641.2pt 687.0pt 732.8pt'><span
 lang=EN-US style='mso-ansi-language:EN-US'>The same simple
-and composite state machines are implemented
-with Msm2 with standard frontend, the simple one also with <a
-href="EumlSimple.cpp">eUML</a>.<o:p></o:p></span></p>
+and composite state machines are implemented with
+Msm2 with standard frontend, the simple one also with eUML.<o:p></o:p></span></p>
 
 <p style='tab-stops:45.8pt 91.6pt 137.4pt 183.2pt 229.0pt 274.8pt 320.6pt 366.4pt 412.2pt 458.0pt 503.8pt 549.6pt 595.4pt 641.2pt 687.0pt 732.8pt'><span
-lang=EN-US style='mso-ansi-language:EN-US'>As these simple machines need no terminate/interrupt
-states, no message queue and have no-throw guarantee on their actions, the Msm
-state machines are defined with minimum functionality.<o:p></o:p></span></p>
+lang=EN-US style='mso-ansi-language:EN-US'>As these simple machines need no
+terminate/interrupt states, no message queue and have no-throw guarantee on
+their actions, the Msm state machines are defined with minimum functionality.<o:p></o:p></span></p>
 
 <p style='tab-stops:45.8pt 91.6pt 137.4pt 183.2pt 229.0pt 274.8pt 320.6pt 366.4pt 412.2pt 458.0pt 503.8pt 549.6pt 595.4pt 641.2pt 687.0pt 732.8pt'><span
 lang=EN-US style='mso-ansi-language:EN-US'>VC9:<o:p></o:p></span></p>
 
-<p style='margin-left:36.0pt;text-indent:-18.0pt;mso-list:l10 level1 lfo38;
+<p style='margin-left:36.0pt;text-indent:-18.0pt;mso-list:l10 level1 lfo39;
 tab-stops:list 36.0pt'><![if !supportLists]><span lang=EN-US style='font-size:
 10.0pt;mso-bidi-font-size:12.0pt;font-family:Symbol;mso-fareast-font-family:
 Symbol;mso-bidi-font-family:Symbol;mso-ansi-language:EN-US'><span
@@ -18221,7 +18285,7 @@
 </span></span></span><![endif]><span lang=EN-US style='mso-ansi-language:EN-US'>The
 simple test completes 36 times faster with Msm than with Boost.Statechart<o:p></o:p></span></p>
 
-<p style='margin-left:36.0pt;text-indent:-18.0pt;mso-list:l10 level1 lfo38;
+<p style='margin-left:36.0pt;text-indent:-18.0pt;mso-list:l10 level1 lfo39;
 tab-stops:list 36.0pt'><![if !supportLists]><span lang=EN-US style='font-size:
 10.0pt;mso-bidi-font-size:12.0pt;font-family:Symbol;mso-fareast-font-family:
 Symbol;mso-bidi-font-family:Symbol;mso-ansi-language:EN-US'><span
@@ -18229,27 +18293,28 @@
 </span></span></span><![endif]><span lang=EN-US style='mso-ansi-language:EN-US'>The
 composite test completes 18 times faster with Msm<o:p></o:p></span></p>
 
-<p style='margin-left:36.0pt;text-indent:-18.0pt;mso-list:l10 level1 lfo38;
+<p style='margin-left:36.0pt;text-indent:-18.0pt;mso-list:l10 level1 lfo39;
 tab-stops:list 36.0pt'><![if !supportLists]><span lang=EN-US style='font-size:
 10.0pt;mso-bidi-font-size:12.0pt;font-family:Symbol;mso-fareast-font-family:
 Symbol;mso-bidi-font-family:Symbol;mso-ansi-language:EN-US'><span
 style='mso-list:Ignore'>·<span style='font:7.0pt "Times New Roman"'>       
 </span></span></span><![endif]><span lang=EN-US style='mso-ansi-language:EN-US'>The
-fastest version is with eUML. It completes 47 times faster than
-Boost.Statechart. A transition costs on my Q6600 9ns.<o:p></o:p></span></p>
+fastest version is with eUML/functors. It
+completes 58 times faster than Boost.Statechart. A transition costs on my Q6600
+4.5ns.<o:p></o:p></span></p>
 
 <p style='tab-stops:45.8pt 91.6pt 137.4pt 183.2pt 229.0pt 274.8pt 320.6pt 366.4pt 412.2pt 458.0pt 503.8pt 549.6pt 595.4pt 641.2pt 687.0pt 732.8pt'><span
 lang=EN-US style='mso-ansi-language:EN-US'>gcc 4.2.3:<o:p></o:p></span></p>
 
-<p style='margin-left:36.0pt;text-indent:-18.0pt;mso-list:l31 level1 lfo39;
+<p style='margin-left:36.0pt;text-indent:-18.0pt;mso-list:l31 level1 lfo40;
 tab-stops:list 36.0pt'><![if !supportLists]><span lang=EN-US style='font-size:
 10.0pt;mso-bidi-font-size:12.0pt;font-family:Symbol;mso-fareast-font-family:
 Symbol;mso-bidi-font-family:Symbol;mso-ansi-language:EN-US'><span
 style='mso-list:Ignore'>·<span style='font:7.0pt "Times New Roman"'>       
 </span></span></span><![endif]><span lang=EN-US style='mso-ansi-language:EN-US'>the
-simple test completes 33 times faster with Msm<o:p></o:p></span></p>
+simple test completes 54 times faster with Msm (with functors)<o:p></o:p></span></p>
 
-<p style='margin-left:36.0pt;text-indent:-18.0pt;mso-list:l31 level1 lfo39;
+<p style='margin-left:36.0pt;text-indent:-18.0pt;mso-list:l31 level1 lfo40;
 tab-stops:list 36.0pt'><![if !supportLists]><span lang=EN-US style='font-size:
 10.0pt;mso-bidi-font-size:12.0pt;font-family:Symbol;mso-fareast-font-family:
 Symbol;mso-bidi-font-family:Symbol;mso-ansi-language:EN-US'><span
@@ -18281,10 +18346,10 @@
 <p style='tab-stops:45.8pt 91.6pt 137.4pt 183.2pt 229.0pt 274.8pt 320.6pt 366.4pt 412.2pt 458.0pt 503.8pt 549.6pt 595.4pt 641.2pt 687.0pt 732.8pt'><span
 lang=EN-US style='mso-ansi-language:EN-US'>With g++ 4.3, it strongly depends on
 the compiler option (much more than VC). A good size state machine with
-–O3 can generate an executable of 600kB, and with eUML you can get to 1.5MB.
-Now, trying with –Os –s I come down to 18kB and 30kB for the test
-state machines, while eUML will go down to 1MB (which is still big), so in this
-case eUML does not come for free.<o:p></o:p></span></p>
+–O3 can generate an executable of 600kB, and with eUML you can get to
+1.5MB. Now, trying with –Os –s I come down to 18kB and 30kB for the
+test state machines, while eUML will go down to 1MB (which is still big), so in
+this case eUML does not come for free.<o:p></o:p></span></p>
 
 <h1 style='tab-stops:45.8pt 91.6pt 137.4pt 183.2pt 229.0pt 274.8pt 320.6pt 366.4pt 412.2pt 458.0pt 503.8pt 549.6pt 595.4pt 641.2pt 687.0pt 732.8pt'><a
 name="_Compilers"></a><span lang=EN-US style='mso-ansi-language:EN-US'>Compilers<o:p></o:p></span></h1>
@@ -18292,7 +18357,7 @@
 <p style='tab-stops:45.8pt 91.6pt 137.4pt 183.2pt 229.0pt 274.8pt 320.6pt 366.4pt 412.2pt 458.0pt 503.8pt 549.6pt 595.4pt 641.2pt 687.0pt 732.8pt'><span
 lang=EN-US style='mso-ansi-language:EN-US'>Msm v2 was successfully tested with:<o:p></o:p></span></p>
 
-<p style='margin-left:36.0pt;text-indent:-18.0pt;mso-list:l20 level1 lfo40;
+<p style='margin-left:36.0pt;text-indent:-18.0pt;mso-list:l20 level1 lfo41;
 tab-stops:list 36.0pt'><![if !supportLists]><span lang=EN-US style='font-size:
 10.0pt;mso-bidi-font-size:12.0pt;font-family:Symbol;mso-fareast-font-family:
 Symbol;mso-bidi-font-family:Symbol;mso-ansi-language:EN-US'><span
@@ -18300,7 +18365,7 @@
 </span></span></span><![endif]><span lang=EN-US style='mso-ansi-language:EN-US'>VC8,
 VC9SP1, VC10 Beta1<o:p></o:p></span></p>
 
-<p style='margin-left:36.0pt;text-indent:-18.0pt;mso-list:l20 level1 lfo40;
+<p style='margin-left:36.0pt;text-indent:-18.0pt;mso-list:l20 level1 lfo41;
 tab-stops:list 36.0pt'><![if !supportLists]><span lang=EN-US style='font-size:
 10.0pt;mso-bidi-font-size:12.0pt;font-family:Symbol;mso-fareast-font-family:
 Symbol;mso-bidi-font-family:Symbol;mso-ansi-language:EN-US'><span
@@ -18308,7 +18373,7 @@
 </span></span></span><![endif]><span lang=EN-US style='mso-ansi-language:EN-US'>g++
 4.1 and higher<o:p></o:p></span></p>
 
-<p style='margin-left:36.0pt;text-indent:-18.0pt;mso-list:l20 level1 lfo40;
+<p style='margin-left:36.0pt;text-indent:-18.0pt;mso-list:l20 level1 lfo41;
 tab-stops:list 36.0pt'><![if !supportLists]><span lang=EN-US style='font-size:
 10.0pt;mso-bidi-font-size:12.0pt;font-family:Symbol;mso-fareast-font-family:
 Symbol;mso-bidi-font-family:Symbol;mso-ansi-language:EN-US'><span
@@ -18319,7 +18384,7 @@
 <p style='tab-stops:45.8pt 91.6pt 137.4pt 183.2pt 229.0pt 274.8pt 320.6pt 366.4pt 412.2pt 458.0pt 503.8pt 549.6pt 595.4pt 641.2pt 687.0pt 732.8pt'><span
 lang=EN-US style='mso-ansi-language:EN-US'>EUML will only work with:<o:p></o:p></span></p>
 
-<p style='margin-left:36.0pt;text-indent:-18.0pt;mso-list:l20 level1 lfo40;
+<p style='margin-left:36.0pt;text-indent:-18.0pt;mso-list:l20 level1 lfo41;
 tab-stops:list 36.0pt'><![if !supportLists]><span lang=EN-US style='font-size:
 10.0pt;mso-bidi-font-size:12.0pt;font-family:Symbol;mso-fareast-font-family:
 Symbol;mso-bidi-font-family:Symbol;mso-ansi-language:EN-US'><span
@@ -18328,7 +18393,7 @@
 (partly). You cannot, however use any overloaded function (like splice) and
 compile times and RAM consumption explode.<o:p></o:p></span></p>
 
-<p style='margin-left:36.0pt;text-indent:-18.0pt;mso-list:l20 level1 lfo40;
+<p style='margin-left:36.0pt;text-indent:-18.0pt;mso-list:l20 level1 lfo41;
 tab-stops:list 36.0pt'><![if !supportLists]><span lang=EN-US style='font-size:
 10.0pt;mso-bidi-font-size:12.0pt;font-family:Symbol;mso-fareast-font-family:
 Symbol;mso-bidi-font-family:Symbol;mso-ansi-language:EN-US'><span
@@ -18336,7 +18401,7 @@
 </span></span></span><![endif]><span lang=EN-US style='mso-ansi-language:EN-US'>VC9SP1,
 VC10 Beta1-2<o:p></o:p></span></p>
 
-<p style='margin-left:36.0pt;text-indent:-18.0pt;mso-list:l20 level1 lfo40;
+<p style='margin-left:36.0pt;text-indent:-18.0pt;mso-list:l20 level1 lfo41;
 tab-stops:list 36.0pt'><![if !supportLists]><span lang=EN-US style='font-size:
 10.0pt;mso-bidi-font-size:12.0pt;font-family:Symbol;mso-fareast-font-family:
 Symbol;mso-bidi-font-family:Symbol;mso-ansi-language:EN-US'><span
@@ -18350,7 +18415,7 @@
 <h1 style='tab-stops:45.8pt 91.6pt 137.4pt 183.2pt 229.0pt 274.8pt 320.6pt 366.4pt 412.2pt 458.0pt 503.8pt 549.6pt 595.4pt 641.2pt 687.0pt 732.8pt'><a
 name="_Limitations"></a>Limitation</h1>
 
-<p style='margin-left:36.0pt;text-indent:-18.0pt;mso-list:l34 level1 lfo41;
+<p style='margin-left:36.0pt;text-indent:-18.0pt;mso-list:l34 level1 lfo42;
 tab-stops:list 36.0pt'><![if !supportLists]><span lang=EN-US style='font-size:
 10.0pt;mso-bidi-font-size:12.0pt;font-family:Symbol;mso-fareast-font-family:
 Symbol;mso-bidi-font-family:Symbol;mso-ansi-language:EN-US'><span
@@ -18361,7 +18426,7 @@
 watch the compiler agonize for hours... (Make sure you ask for dual 24" as
 well, it doesn't hurt).<o:p></o:p></span></p>
 
-<p style='margin-left:36.0pt;text-indent:-18.0pt;mso-list:l34 level1 lfo41;
+<p style='margin-left:36.0pt;text-indent:-18.0pt;mso-list:l34 level1 lfo42;
 tab-stops:list 36.0pt'><![if !supportLists]><span lang=EN-US style='font-size:
 10.0pt;mso-bidi-font-size:12.0pt;font-family:Symbol;mso-fareast-font-family:
 Symbol;mso-bidi-font-family:Symbol;mso-ansi-language:EN-US'><span
@@ -18371,7 +18436,7 @@
 some compilers (VC9, VC10 Beta1) with buggy decltype support (I suspect some at
 least quadratic algorithms there).<o:p></o:p></span></p>
 
-<p style='margin-left:36.0pt;text-indent:-18.0pt;mso-list:l34 level1 lfo41;
+<p style='margin-left:36.0pt;text-indent:-18.0pt;mso-list:l34 level1 lfo42;
 tab-stops:list 36.0pt'><![if !supportLists]><span lang=EN-US style='font-size:
 10.0pt;mso-bidi-font-size:12.0pt;font-family:Symbol;mso-fareast-font-family:
 Symbol;mso-bidi-font-family:Symbol;mso-ansi-language:EN-US'><span
@@ -18426,7 +18491,7 @@
 lang=EN-US style='mso-ansi-language:EN-US'>VC9</span></u><span lang=EN-US
 style='mso-ansi-language:EN-US'>:<o:p></o:p></span></p>
 
-<p style='margin-left:36.0pt;text-indent:-18.0pt;mso-list:l29 level1 lfo42;
+<p style='margin-left:36.0pt;text-indent:-18.0pt;mso-list:l29 level1 lfo43;
 tab-stops:45.8pt 91.6pt 137.4pt 183.2pt 229.0pt 274.8pt 320.6pt 366.4pt 412.2pt 458.0pt 503.8pt 549.6pt 595.4pt 641.2pt 687.0pt 732.8pt'><![if !supportLists]><span
 lang=EN-US style='font-family:Symbol;mso-fareast-font-family:Symbol;mso-bidi-font-family:
 Symbol;mso-ansi-language:EN-US'><span style='mso-list:Ignore'>·<span
@@ -18437,13 +18502,13 @@
 mso-ansi-language:EN-US'>submachine::exit_pt</span><span lang=EN-US
 style='mso-ansi-language:EN-US'>” ? Because “</span><span
 lang=EN-US style='font-family:"Courier New";mso-ansi-language:EN-US'>exit</span><span
-lang=EN-US style='mso-ansi-language:EN-US'>” will crash the compiler.
-“</span><span lang=EN-US style='font-family:"Courier New";mso-ansi-language:
-EN-US'>Exit</span><span lang=EN-US style='mso-ansi-language:EN-US'>” is
-not possible either because it will crash the compiler on one machine, but not
-on another (the compiler was installed from the same disk).<o:p></o:p></span></p>
+lang=EN-US style='mso-ansi-language:EN-US'>” will crash the compiler. “</span><span
+lang=EN-US style='font-family:"Courier New";mso-ansi-language:EN-US'>Exit</span><span
+lang=EN-US style='mso-ansi-language:EN-US'>” is not possible either
+because it will crash the compiler on one machine, but not on another (the
+compiler was installed from the same disk).<o:p></o:p></span></p>
 
-<p style='margin-left:36.0pt;text-indent:-18.0pt;mso-list:l29 level1 lfo42;
+<p style='margin-left:36.0pt;text-indent:-18.0pt;mso-list:l29 level1 lfo43;
 tab-stops:45.8pt 91.6pt 137.4pt 183.2pt 229.0pt 274.8pt 320.6pt 366.4pt 412.2pt 458.0pt 503.8pt 549.6pt 595.4pt 641.2pt 687.0pt 732.8pt'><![if !supportLists]><span
 lang=EN-US style='font-family:Symbol;mso-fareast-font-family:Symbol;mso-bidi-font-family:
 Symbol;mso-ansi-language:EN-US'><span style='mso-list:Ignore'>·<span
@@ -18456,15 +18521,15 @@
 which was simpler because with one less template argument. Note: VC10 beta
 seems to have solved the problem.<o:p></o:p></span></p>
 
-<p style='margin-left:36.0pt;text-indent:-18.0pt;mso-list:l29 level1 lfo42;
+<p style='margin-left:36.0pt;text-indent:-18.0pt;mso-list:l29 level1 lfo43;
 tab-stops:45.8pt 91.6pt 137.4pt 183.2pt 229.0pt 274.8pt 320.6pt 366.4pt 412.2pt 458.0pt 503.8pt 549.6pt 595.4pt 641.2pt 687.0pt 732.8pt'><![if !supportLists]><span
 lang=EN-US style='font-family:Symbol;mso-fareast-font-family:Symbol;mso-bidi-font-family:
 Symbol;mso-ansi-language:EN-US'><span style='mso-list:Ignore'>·<span
 style='font:7.0pt "Times New Roman"'>       </span></span></span><![endif]><span
 lang=EN-US style='mso-ansi-language:EN-US'>Typeof: While g++ and VC9 compile
-“standard” state machines in comparable times, Typeof (while in both
-ways natively supported) seems to behave in a quadratic complexity with VC9 and
-VC10.<o:p></o:p></span></p>
+“standard” state machines in comparable times, Typeof (while in
+both ways natively supported) seems to behave in a quadratic complexity with
+VC9 and VC10.<o:p></o:p></span></p>
 
 <p style='tab-stops:45.8pt 91.6pt 137.4pt 183.2pt 229.0pt 274.8pt 320.6pt 366.4pt 412.2pt 458.0pt 503.8pt 549.6pt 595.4pt 641.2pt 687.0pt 732.8pt'><u><span
 lang=EN-US style='mso-ansi-language:EN-US'>g++ 4.x</span></u><span lang=EN-US
@@ -18482,7 +18547,7 @@
 lang=EN-US style='mso-ansi-language:EN-US'>I only found two ways to break the
 compiler:<o:p></o:p></span></p>
 
-<p style='margin-left:36.0pt;text-indent:-18.0pt;mso-list:l37 level1 lfo43;
+<p style='margin-left:36.0pt;text-indent:-18.0pt;mso-list:l37 level1 lfo44;
 tab-stops:45.8pt 91.6pt 137.4pt 183.2pt 229.0pt 274.8pt 320.6pt 366.4pt 412.2pt 458.0pt 503.8pt 549.6pt 595.4pt 641.2pt 687.0pt 732.8pt'><![if !supportLists]><span
 lang=EN-US style='font-family:Symbol;mso-fareast-font-family:Symbol;mso-bidi-font-family:
 Symbol;mso-ansi-language:EN-US'><span style='mso-list:Ignore'>·<span
@@ -18490,7 +18555,7 @@
 lang=EN-US style='mso-ansi-language:EN-US'>Add more eUML constructs until
 something explodes. <o:p></o:p></span></p>
 
-<p style='margin-left:36.0pt;text-indent:-18.0pt;mso-list:l37 level1 lfo43;
+<p style='margin-left:36.0pt;text-indent:-18.0pt;mso-list:l37 level1 lfo44;
 tab-stops:45.8pt 91.6pt 137.4pt 183.2pt 229.0pt 274.8pt 320.6pt 366.4pt 412.2pt 458.0pt 503.8pt 549.6pt 595.4pt 641.2pt 687.0pt 732.8pt'><![if !supportLists]><span
 lang=EN-US style='font-family:Symbol;mso-fareast-font-family:Symbol;mso-bidi-font-family:
 Symbol;mso-ansi-language:EN-US'><span style='mso-list:Ignore'>·<span
@@ -18523,7 +18588,7 @@
 <h2 style='tab-stops:45.8pt 91.6pt 137.4pt 183.2pt 229.0pt 274.8pt 320.6pt 366.4pt 412.2pt 458.0pt 503.8pt 549.6pt 595.4pt 641.2pt 687.0pt 732.8pt'><span
 lang=EN-US style='mso-ansi-language:EN-US'>Msm2:<o:p></o:p></span></h2>
 
-<p style='margin-left:36.0pt;text-indent:-18.0pt;mso-list:l39 level1 lfo44;
+<p style='margin-left:36.0pt;text-indent:-18.0pt;mso-list:l39 level1 lfo45;
 tab-stops:list 36.0pt'><![if !supportLists]><span lang=EN-US style='font-size:
 10.0pt;mso-bidi-font-size:12.0pt;font-family:Symbol;mso-fareast-font-family:
 Symbol;mso-bidi-font-family:Symbol;mso-ansi-language:EN-US'><span
@@ -18531,7 +18596,7 @@
 </span></span></span><![endif]><span lang=EN-US style='mso-ansi-language:EN-US'>eUML
 was made possible by Boost.Proto and Boost.Typeof<o:p></o:p></span></p>
 
-<p style='margin-left:36.0pt;text-indent:-18.0pt;mso-list:l39 level1 lfo44;
+<p style='margin-left:36.0pt;text-indent:-18.0pt;mso-list:l39 level1 lfo45;
 tab-stops:list 36.0pt'><![if !supportLists]><span lang=EN-US style='font-size:
 10.0pt;mso-bidi-font-size:12.0pt;font-family:Symbol;mso-fareast-font-family:
 Symbol;mso-bidi-font-family:Symbol;mso-ansi-language:EN-US'><span
@@ -18539,7 +18604,7 @@
 </span></span></span><![endif]><span lang=EN-US style='mso-ansi-language:EN-US'>Thanks
 to Eric Niebler for his patience correcting my grammar errors<o:p></o:p></span></p>
 
-<p style='margin-left:36.0pt;text-indent:-18.0pt;mso-list:l39 level1 lfo44;
+<p style='margin-left:36.0pt;text-indent:-18.0pt;mso-list:l39 level1 lfo45;
 tab-stops:list 36.0pt'><![if !supportLists]><span lang=EN-US style='font-size:
 10.0pt;mso-bidi-font-size:12.0pt;font-family:Symbol;mso-fareast-font-family:
 Symbol;mso-bidi-font-family:Symbol;mso-ansi-language:EN-US'><span
@@ -18553,7 +18618,7 @@
 mso-symbol-font-family:Wingdings'>J</span></span><span lang=EN-US
 style='mso-ansi-language:EN-US'><o:p></o:p></span></p>
 
-<p style='margin-left:36.0pt;text-indent:-18.0pt;mso-list:l39 level1 lfo44;
+<p style='margin-left:36.0pt;text-indent:-18.0pt;mso-list:l39 level1 lfo45;
 tab-stops:list 36.0pt'><![if !supportLists]><span lang=EN-US style='font-size:
 10.0pt;mso-bidi-font-size:12.0pt;font-family:Symbol;mso-fareast-font-family:
 Symbol;mso-bidi-font-family:Symbol;mso-ansi-language:EN-US'><span
@@ -18562,17 +18627,17 @@
 to Richard O’Hara for making Green Hills bring a patch in less than 1
 week, thus adding one more compiler to the supported list.<o:p></o:p></span></p>
 
-<p style='margin-left:36.0pt;text-indent:-18.0pt;mso-list:l39 level1 lfo44;
+<p style='margin-left:36.0pt;text-indent:-18.0pt;mso-list:l39 level1 lfo45;
 tab-stops:list 36.0pt'><![if !supportLists]><span lang=EN-US style='font-size:
 10.0pt;mso-bidi-font-size:12.0pt;font-family:Symbol;mso-fareast-font-family:
 Symbol;mso-bidi-font-family:Symbol;mso-ansi-language:EN-US'><span
 style='mso-list:Ignore'>·<span style='font:7.0pt "Times New Roman"'>       
 </span></span></span><![endif]><span lang=EN-US style='mso-ansi-language:EN-US'>Big
-thanks to those who took the time to write a review: Franz Alt, David Bergman, Michael
-Caisse, Barend Gehrels, Darryl Greene, Juraj Ivancic, Erik Nelson, Kenny
-Riddile.<o:p></o:p></span></p>
+thanks to those who took the time to write a review: Franz Alt, David Bergman,
+Michael Caisse, Barend Gehrels, Darryl Greene, Juraj Ivancic, Erik Nelson,
+Kenny Riddile.<o:p></o:p></span></p>
 
-<p style='margin-left:36.0pt;text-indent:-18.0pt;mso-list:l39 level1 lfo44;
+<p style='margin-left:36.0pt;text-indent:-18.0pt;mso-list:l39 level1 lfo45;
 tab-stops:list 36.0pt'><![if !supportLists]><span lang=EN-US style='font-size:
 10.0pt;mso-bidi-font-size:12.0pt;font-family:Symbol;mso-fareast-font-family:
 Symbol;mso-bidi-font-family:Symbol;mso-ansi-language:EN-US'><span
@@ -18582,7 +18647,7 @@
 
 <h2 style='tab-stops:45.8pt 91.6pt 137.4pt 183.2pt 229.0pt 274.8pt 320.6pt 366.4pt 412.2pt 458.0pt 503.8pt 549.6pt 595.4pt 641.2pt 687.0pt 732.8pt'>Msm1</h2>
 
-<p style='margin-left:36.0pt;text-indent:-18.0pt;mso-list:l39 level1 lfo44;
+<p style='margin-left:36.0pt;text-indent:-18.0pt;mso-list:l39 level1 lfo45;
 tab-stops:list 36.0pt'><![if !supportLists]><span lang=EN-US style='font-size:
 10.0pt;mso-bidi-font-size:12.0pt;font-family:Symbol;mso-fareast-font-family:
 Symbol;mso-bidi-font-family:Symbol;mso-ansi-language:EN-US'><span
@@ -18593,7 +18658,7 @@
 framework in their excellent book, “C++ template Metaprogramming”.
 The implementation also makes heavy use of the boost::mpl.<o:p></o:p></span></p>
 
-<p style='margin-left:36.0pt;text-indent:-18.0pt;mso-list:l39 level1 lfo44;
+<p style='margin-left:36.0pt;text-indent:-18.0pt;mso-list:l39 level1 lfo45;
 tab-stops:list 36.0pt'><![if !supportLists]><span lang=EN-US style='font-size:
 10.0pt;mso-bidi-font-size:12.0pt;font-family:Symbol;mso-fareast-font-family:
 Symbol;mso-bidi-font-family:Symbol;mso-ansi-language:EN-US'><span
@@ -18602,7 +18667,7 @@
 to Jeff Flinn for his idea of the user-defined base state and his review which
 allowed Msm to be presented at the BoostCon09.<o:p></o:p></span></p>
 
-<p style='margin-left:36.0pt;text-indent:-18.0pt;mso-list:l39 level1 lfo44;
+<p style='margin-left:36.0pt;text-indent:-18.0pt;mso-list:l39 level1 lfo45;
 tab-stops:list 36.0pt'><![if !supportLists]><span lang=EN-US style='font-size:
 10.0pt;mso-bidi-font-size:12.0pt;font-family:Symbol;mso-fareast-font-family:
 Symbol;mso-bidi-font-family:Symbol;mso-ansi-language:EN-US'><span
@@ -18622,56 +18687,56 @@
 <h1 style='tab-stops:45.8pt 91.6pt 137.4pt 183.2pt 229.0pt 274.8pt 320.6pt 366.4pt 412.2pt 458.0pt 503.8pt 549.6pt 595.4pt 641.2pt 687.0pt 732.8pt'><span
 lang=EN-US style='mso-ansi-language:EN-US'>Used libraries:<o:p></o:p></span></h1>
 
-<p class=MsoListParagraphCxSpFirst style='text-indent:-18.0pt;mso-list:l4 level1 lfo45;
+<p class=MsoListParagraphCxSpFirst style='text-indent:-18.0pt;mso-list:l4 level1 lfo46;
 tab-stops:45.8pt 91.6pt 137.4pt 183.2pt 229.0pt 274.8pt 320.6pt 366.4pt 412.2pt 458.0pt 503.8pt 549.6pt 595.4pt 641.2pt 687.0pt 732.8pt'><![if !supportLists]><span
 lang=EN-US style='font-family:Symbol;mso-fareast-font-family:Symbol;mso-bidi-font-family:
 Symbol;mso-ansi-language:EN-US'><span style='mso-list:Ignore'>·<span
 style='font:7.0pt "Times New Roman"'>       </span></span></span><![endif]><span
 lang=EN-US style='mso-ansi-language:EN-US'>Boost::bind<o:p></o:p></span></p>
 
-<p class=MsoListParagraphCxSpMiddle style='text-indent:-18.0pt;mso-list:l4 level1 lfo45;
+<p class=MsoListParagraphCxSpMiddle style='text-indent:-18.0pt;mso-list:l4 level1 lfo46;
 tab-stops:45.8pt 91.6pt 137.4pt 183.2pt 229.0pt 274.8pt 320.6pt 366.4pt 412.2pt 458.0pt 503.8pt 549.6pt 595.4pt 641.2pt 687.0pt 732.8pt'><![if !supportLists]><span
 lang=EN-US style='font-family:Symbol;mso-fareast-font-family:Symbol;mso-bidi-font-family:
 Symbol;mso-ansi-language:EN-US'><span style='mso-list:Ignore'>·<span
 style='font:7.0pt "Times New Roman"'>       </span></span></span><![endif]><span
 lang=EN-US style='mso-ansi-language:EN-US'>Boost::mpl<o:p></o:p></span></p>
 
-<p class=MsoListParagraphCxSpMiddle style='text-indent:-18.0pt;mso-list:l4 level1 lfo45;
+<p class=MsoListParagraphCxSpMiddle style='text-indent:-18.0pt;mso-list:l4 level1 lfo46;
 tab-stops:45.8pt 91.6pt 137.4pt 183.2pt 229.0pt 274.8pt 320.6pt 366.4pt 412.2pt 458.0pt 503.8pt 549.6pt 595.4pt 641.2pt 687.0pt 732.8pt'><![if !supportLists]><span
 lang=EN-US style='font-family:Symbol;mso-fareast-font-family:Symbol;mso-bidi-font-family:
 Symbol;mso-ansi-language:EN-US'><span style='mso-list:Ignore'>·<span
 style='font:7.0pt "Times New Roman"'>       </span></span></span><![endif]><span
 lang=EN-US style='mso-ansi-language:EN-US'>Boost::fusion<o:p></o:p></span></p>
 
-<p class=MsoListParagraphCxSpMiddle style='text-indent:-18.0pt;mso-list:l4 level1 lfo45;
+<p class=MsoListParagraphCxSpMiddle style='text-indent:-18.0pt;mso-list:l4 level1 lfo46;
 tab-stops:45.8pt 91.6pt 137.4pt 183.2pt 229.0pt 274.8pt 320.6pt 366.4pt 412.2pt 458.0pt 503.8pt 549.6pt 595.4pt 641.2pt 687.0pt 732.8pt'><![if !supportLists]><span
 lang=EN-US style='font-family:Symbol;mso-fareast-font-family:Symbol;mso-bidi-font-family:
 Symbol;mso-ansi-language:EN-US'><span style='mso-list:Ignore'>·<span
 style='font:7.0pt "Times New Roman"'>       </span></span></span><![endif]><span
 lang=EN-US style='mso-ansi-language:EN-US'>Boost::proto<o:p></o:p></span></p>
 
-<p class=MsoListParagraphCxSpMiddle style='text-indent:-18.0pt;mso-list:l4 level1 lfo45;
+<p class=MsoListParagraphCxSpMiddle style='text-indent:-18.0pt;mso-list:l4 level1 lfo46;
 tab-stops:45.8pt 91.6pt 137.4pt 183.2pt 229.0pt 274.8pt 320.6pt 366.4pt 412.2pt 458.0pt 503.8pt 549.6pt 595.4pt 641.2pt 687.0pt 732.8pt'><![if !supportLists]><span
 lang=EN-US style='font-family:Symbol;mso-fareast-font-family:Symbol;mso-bidi-font-family:
 Symbol;mso-ansi-language:EN-US'><span style='mso-list:Ignore'>·<span
 style='font:7.0pt "Times New Roman"'>       </span></span></span><![endif]><span
 lang=EN-US style='mso-ansi-language:EN-US'>Boost::typeof<o:p></o:p></span></p>
 
-<p class=MsoListParagraphCxSpMiddle style='text-indent:-18.0pt;mso-list:l4 level1 lfo45;
+<p class=MsoListParagraphCxSpMiddle style='text-indent:-18.0pt;mso-list:l4 level1 lfo46;
 tab-stops:45.8pt 91.6pt 137.4pt 183.2pt 229.0pt 274.8pt 320.6pt 366.4pt 412.2pt 458.0pt 503.8pt 549.6pt 595.4pt 641.2pt 687.0pt 732.8pt'><![if !supportLists]><span
 lang=EN-US style='font-family:Symbol;mso-fareast-font-family:Symbol;mso-bidi-font-family:
 Symbol;mso-ansi-language:EN-US'><span style='mso-list:Ignore'>·<span
 style='font:7.0pt "Times New Roman"'>       </span></span></span><![endif]><span
 lang=EN-US style='mso-ansi-language:EN-US'>Boost:TypeTraits<o:p></o:p></span></p>
 
-<p class=MsoListParagraphCxSpMiddle style='text-indent:-18.0pt;mso-list:l4 level1 lfo45;
+<p class=MsoListParagraphCxSpMiddle style='text-indent:-18.0pt;mso-list:l4 level1 lfo46;
 tab-stops:45.8pt 91.6pt 137.4pt 183.2pt 229.0pt 274.8pt 320.6pt 366.4pt 412.2pt 458.0pt 503.8pt 549.6pt 595.4pt 641.2pt 687.0pt 732.8pt'><![if !supportLists]><span
 lang=EN-US style='font-family:Symbol;mso-fareast-font-family:Symbol;mso-bidi-font-family:
 Symbol;mso-ansi-language:EN-US'><span style='mso-list:Ignore'>·<span
 style='font:7.0pt "Times New Roman"'>       </span></span></span><![endif]><span
 lang=EN-US style='mso-ansi-language:EN-US'>Boost::utility<o:p></o:p></span></p>
 
-<p class=MsoListParagraphCxSpLast style='text-indent:-18.0pt;mso-list:l4 level1 lfo45;
+<p class=MsoListParagraphCxSpLast style='text-indent:-18.0pt;mso-list:l4 level1 lfo46;
 tab-stops:45.8pt 91.6pt 137.4pt 183.2pt 229.0pt 274.8pt 320.6pt 366.4pt 412.2pt 458.0pt 503.8pt 549.6pt 595.4pt 641.2pt 687.0pt 732.8pt'><![if !supportLists]><span
 lang=EN-US style='font-family:Symbol;mso-fareast-font-family:Symbol;mso-bidi-font-family:
 Symbol;mso-ansi-language:EN-US'><span style='mso-list:Ignore'>·<span
@@ -18686,8 +18751,8 @@
 
 <p style='tab-stops:45.8pt 91.6pt 137.4pt 183.2pt 229.0pt 274.8pt 320.6pt 366.4pt 412.2pt 458.0pt 503.8pt 549.6pt 595.4pt 641.2pt 687.0pt 732.8pt'><u><span
 lang=EN-US style='mso-ansi-language:EN-US'>Question</span></u><span lang=EN-US
-style='mso-ansi-language:EN-US'>: on_entry gets as argument, the sent event. What
-event do I get when the state becomes default-activated (because it is an
+style='mso-ansi-language:EN-US'>: on_entry gets as argument, the sent event.
+What event do I get when the state becomes default-activated (because it is an
 initial state)?<o:p></o:p></span></p>
 
 <p style='tab-stops:45.8pt 91.6pt 137.4pt 183.2pt 229.0pt 274.8pt 320.6pt 366.4pt 412.2pt 458.0pt 503.8pt 549.6pt 595.4pt 641.2pt 687.0pt 732.8pt'><u><span
@@ -18856,7 +18921,7 @@
 reuse. Let us imagine what could happen if Harel really was working for a
 company producing watches.<o:p></o:p></span></p>
 
-<p style='margin-left:36.0pt;text-indent:-18.0pt;mso-list:l45 level1 lfo46;
+<p style='margin-left:36.0pt;text-indent:-18.0pt;mso-list:l45 level1 lfo47;
 tab-stops:list 36.0pt'><![if !supportLists]><span lang=EN-US style='font-size:
 10.0pt;mso-bidi-font-size:12.0pt;font-family:Symbol;mso-fareast-font-family:
 Symbol;mso-bidi-font-family:Symbol;mso-ansi-language:EN-US'><span
@@ -18864,7 +18929,7 @@
 </span></span></span><![endif]><span lang=EN-US style='mso-ansi-language:EN-US'>Harel
 would implement this state machine.<o:p></o:p></span></p>
 
-<p style='margin-left:36.0pt;text-indent:-18.0pt;mso-list:l45 level1 lfo46;
+<p style='margin-left:36.0pt;text-indent:-18.0pt;mso-list:l45 level1 lfo47;
 tab-stops:list 36.0pt'><![if !supportLists]><span lang=EN-US style='font-size:
 10.0pt;mso-bidi-font-size:12.0pt;font-family:Symbol;mso-fareast-font-family:
 Symbol;mso-bidi-font-family:Symbol;mso-ansi-language:EN-US'><span
@@ -18873,7 +18938,7 @@
 time later, he would be asked to do the same for a new model of watch. But this
 model would have 3 alarms.<o:p></o:p></span></p>
 
-<p style='margin-left:36.0pt;text-indent:-18.0pt;mso-list:l45 level1 lfo46;
+<p style='margin-left:36.0pt;text-indent:-18.0pt;mso-list:l45 level1 lfo47;
 tab-stops:list 36.0pt'><![if !supportLists]><span lang=EN-US style='font-size:
 10.0pt;mso-bidi-font-size:12.0pt;font-family:Symbol;mso-fareast-font-family:
 Symbol;mso-bidi-font-family:Symbol;mso-ansi-language:EN-US'><span
@@ -18881,7 +18946,7 @@
 </span></span></span><![endif]><span lang=EN-US style='mso-ansi-language:EN-US'>Or
 maybe 4 alarms?<o:p></o:p></span></p>
 
-<p style='margin-left:36.0pt;text-indent:-18.0pt;mso-list:l45 level1 lfo46;
+<p style='margin-left:36.0pt;text-indent:-18.0pt;mso-list:l45 level1 lfo47;
 tab-stops:list 36.0pt'><![if !supportLists]><span lang=EN-US style='font-size:
 10.0pt;mso-bidi-font-size:12.0pt;font-family:Symbol;mso-fareast-font-family:
 Symbol;mso-bidi-font-family:Symbol;mso-ansi-language:EN-US'><span
@@ -18893,16 +18958,16 @@
 lang=EN-US style='mso-ansi-language:EN-US'><o:p> </o:p></span></p>
 
 <p style='tab-stops:45.8pt 91.6pt 137.4pt 183.2pt 229.0pt 274.8pt 320.6pt 366.4pt 412.2pt 458.0pt 503.8pt 549.6pt 595.4pt 641.2pt 687.0pt 732.8pt'><span
-lang=EN-US style='mso-ansi-language:EN-US'>Please keep in mind that these companies
-produce hundreds of slightly different products, which makes this quite a
-realistic scenario.<o:p></o:p></span></p>
+lang=EN-US style='mso-ansi-language:EN-US'>Please keep in mind that these
+companies produce hundreds of slightly different products, which makes this
+quite a realistic scenario.<o:p></o:p></span></p>
 
 <p style='tab-stops:45.8pt 91.6pt 137.4pt 183.2pt 229.0pt 274.8pt 320.6pt 366.4pt 412.2pt 458.0pt 503.8pt 549.6pt 595.4pt 641.2pt 687.0pt 732.8pt'><span
 lang=EN-US style='mso-ansi-language:EN-US'>What would be the result? New states
 like “alarm3 beeps” or “three beep” + “both
-beep” (backward compatibility). Maintenance would quickly become a nightmare.
-The reason? A breach of encapsulation caused by “alarm beeps”
-letting other state machines use its internals.<o:p></o:p></span></p>
+beep” (backward compatibility). Maintenance would quickly become a
+nightmare. The reason? A breach of encapsulation caused by “alarm
+beeps” letting other state machines use its internals.<o:p></o:p></span></p>
 
 <p style='tab-stops:45.8pt 91.6pt 137.4pt 183.2pt 229.0pt 274.8pt 320.6pt 366.4pt 412.2pt 458.0pt 503.8pt 549.6pt 595.4pt 641.2pt 687.0pt 732.8pt'><span
 lang=EN-US style='mso-ansi-language:EN-US'>Luckily, UML provides not only the
@@ -18913,7 +18978,7 @@
 <p style='tab-stops:45.8pt 91.6pt 137.4pt 183.2pt 229.0pt 274.8pt 320.6pt 366.4pt 412.2pt 458.0pt 503.8pt 549.6pt 595.4pt 641.2pt 687.0pt 732.8pt'><span
 lang=EN-US style='mso-ansi-language:EN-US'>Let us redesign Alarm-Beeps by:<o:p></o:p></span></p>
 
-<p style='margin-left:36.0pt;text-indent:-18.0pt;mso-list:l36 level1 lfo47;
+<p style='margin-left:36.0pt;text-indent:-18.0pt;mso-list:l36 level1 lfo48;
 tab-stops:list 36.0pt'><![if !supportLists]><span lang=EN-US style='font-size:
 10.0pt;mso-bidi-font-size:12.0pt;font-family:Symbol;mso-fareast-font-family:
 Symbol;mso-bidi-font-family:Symbol;mso-ansi-language:EN-US'><span
@@ -18921,7 +18986,7 @@
 </span></span></span><![endif]><span lang=EN-US style='mso-ansi-language:EN-US'>Encapsulating
 the alarm functionality in its own state (machine).<o:p></o:p></span></p>
 
-<p style='margin-left:36.0pt;text-indent:-18.0pt;mso-list:l36 level1 lfo47;
+<p style='margin-left:36.0pt;text-indent:-18.0pt;mso-list:l36 level1 lfo48;
 tab-stops:list 36.0pt'><![if !supportLists]><span lang=EN-US style='font-size:
 10.0pt;mso-bidi-font-size:12.0pt;font-family:Symbol;mso-fareast-font-family:
 Symbol;mso-bidi-font-family:Symbol;mso-ansi-language:EN-US'><span
@@ -18936,7 +19001,7 @@
  height:388.8pt;visibility:visible;mso-wrap-style:square'>
  <v:imagedata src="index-Dateien/image017.jpg" o:title="clock"/>
 </v:shape><![endif]--><![if !vml]><img border=0 width=554 height=518
-src="index-Dateien/image035.jpg" alt=clock.jpg v:shapes="Grafik_x0020_5"><![endif]></span><span
+src="index-Dateien/image018.jpg" alt=clock.jpg v:shapes="Grafik_x0020_5"><![endif]></span><span
 lang=EN-US style='mso-ansi-language:EN-US'><br clear=left style='mso-special-character:
 line-break'>
 <o:p></o:p></span></p>
@@ -18946,8 +19011,8 @@
 
 <p style='tab-stops:45.8pt 91.6pt 137.4pt 183.2pt 229.0pt 274.8pt 320.6pt 366.4pt 412.2pt 458.0pt 503.8pt 549.6pt 595.4pt 641.2pt 687.0pt 732.8pt'><span
 lang=EN-US style='mso-ansi-language:EN-US'>As you see, it is quite simple. You
-only need define an instance of Alarm in each zone. To add a new alarm is as simple
-as adding a new instance. The Alarm submachine is simply defined as:<o:p></o:p></span></p>
+only need define an instance of Alarm in each zone. To add a new alarm is as
+simple as adding a new instance. The Alarm submachine is simply defined as:<o:p></o:p></span></p>
 
 <p style='margin-bottom:12.0pt;tab-stops:45.8pt 91.6pt 137.4pt 183.2pt 229.0pt 274.8pt 320.6pt 366.4pt 412.2pt 458.0pt 503.8pt 549.6pt 595.4pt 641.2pt 687.0pt 732.8pt'><span
 style='mso-no-proof:yes'><!--[if gte vml 1]><v:shape id="Grafik_x0020_6"
@@ -18955,7 +19020,7 @@
  height:229.2pt;visibility:visible;mso-wrap-style:square'>
  <v:imagedata src="index-Dateien/image019.jpg" o:title="alarm"/>
 </v:shape><![endif]--><![if !vml]><img border=0 width=467 height=306
-src="index-Dateien/image036.jpg" alt=alarm.jpg v:shapes="Grafik_x0020_6"><![endif]></span><span
+src="index-Dateien/image020.jpg" alt=alarm.jpg v:shapes="Grafik_x0020_6"><![endif]></span><span
 lang=EN-US style='mso-ansi-language:EN-US'><br clear=left style='mso-special-character:
 line-break'>
 <o:p></o:p></span></p>
@@ -19001,10 +19066,11 @@
 lang=EN-US style='font-family:"Courier New";mso-ansi-language:EN-US'><o:p> </o:p></span></p>
 
 <p style='tab-stops:45.8pt 91.6pt 137.4pt 183.2pt 229.0pt 274.8pt 320.6pt 366.4pt 412.2pt 458.0pt 503.8pt 549.6pt 595.4pt 641.2pt 687.0pt 732.8pt'><span
-lang=EN-US style='color:black;mso-ansi-language:EN-US'>And identify each instance
-in </span><span lang=EN-US style='font-family:"Courier New";color:black;
-mso-ansi-language:EN-US'>alarmBeeps</span><span lang=EN-US style='color:black;
-mso-ansi-language:EN-US'> as Alarm<1>, Alarm<2>, etc.<o:p></o:p></span></p>
+lang=EN-US style='color:black;mso-ansi-language:EN-US'>And identify each
+instance in </span><span lang=EN-US style='font-family:"Courier New";
+color:black;mso-ansi-language:EN-US'>alarmBeeps</span><span lang=EN-US
+style='color:black;mso-ansi-language:EN-US'> as Alarm<1>, Alarm<2>,
+etc.<o:p></o:p></span></p>
 
 <p style='tab-stops:45.8pt 91.6pt 137.4pt 183.2pt 229.0pt 274.8pt 320.6pt 366.4pt 412.2pt 458.0pt 503.8pt 549.6pt 595.4pt 641.2pt 687.0pt 732.8pt'><span
 lang=EN-US style='color:black;mso-ansi-language:EN-US'><o:p> </o:p></span></p>
@@ -19044,8 +19110,8 @@
 
 <p style='tab-stops:45.8pt 91.6pt 137.4pt 183.2pt 229.0pt 274.8pt 320.6pt 366.4pt 412.2pt 458.0pt 503.8pt 549.6pt 595.4pt 641.2pt 687.0pt 732.8pt'><span
 lang=EN-US style='mso-ansi-language:EN-US'>This way, if Harel ever needs to
-support a third alarm, he simply needs a third entry in this typedef. Notice how
-having front-ends and back-ends elegantly solves this problem while staying
+support a third alarm, he simply needs a third entry in this typedef. Notice
+how having front-ends and back-ends elegantly solves this problem while staying
 generic. Notice also that it is now possible to have each alarm instance use
 different history policies.<o:p></o:p></span></p>
 
@@ -19085,7 +19151,7 @@
 piece of clock watch functionality, the countdown. We get the following
 specification:<o:p></o:p></span></p>
 
-<p class=MsoListParagraphCxSpFirst style='text-indent:-18.0pt;mso-list:l26 level1 lfo37;
+<p class=MsoListParagraphCxSpFirst style='text-indent:-18.0pt;mso-list:l26 level1 lfo38;
 tab-stops:45.8pt 91.6pt 137.4pt 183.2pt 229.0pt 274.8pt 320.6pt 366.4pt 412.2pt 458.0pt 503.8pt 549.6pt 595.4pt 641.2pt 687.0pt 732.8pt'><![if !supportLists]><span
 lang=EN-US style='mso-fareast-font-family:"Times New Roman";mso-ansi-language:
 EN-US'><span style='mso-list:Ignore'>-<span style='font:7.0pt "Times New Roman"'>       
@@ -19094,14 +19160,14 @@
 has to start. The sent event contains the countdown value </span>in<span
 lang=EN-US style='mso-ansi-language:EN-US'> seconds<o:p></o:p></span></p>
 
-<p class=MsoListParagraphCxSpMiddle style='text-indent:-18.0pt;mso-list:l26 level1 lfo37;
+<p class=MsoListParagraphCxSpMiddle style='text-indent:-18.0pt;mso-list:l26 level1 lfo38;
 tab-stops:45.8pt 91.6pt 137.4pt 183.2pt 229.0pt 274.8pt 320.6pt 366.4pt 412.2pt 458.0pt 503.8pt 549.6pt 595.4pt 641.2pt 687.0pt 732.8pt'><![if !supportLists]><span
 lang=EN-US style='mso-fareast-font-family:"Times New Roman";mso-ansi-language:
 EN-US'><span style='mso-list:Ignore'>-<span style='font:7.0pt "Times New Roman"'>       
 </span></span></span><![endif]><span lang=EN-US style='mso-ansi-language:EN-US'>When
 the countdown is finished, the clock has to ring for exactly 5s.<o:p></o:p></span></p>
 
-<p class=MsoListParagraphCxSpMiddle style='text-indent:-18.0pt;mso-list:l26 level1 lfo37;
+<p class=MsoListParagraphCxSpMiddle style='text-indent:-18.0pt;mso-list:l26 level1 lfo38;
 tab-stops:45.8pt 91.6pt 137.4pt 183.2pt 229.0pt 274.8pt 320.6pt 366.4pt 412.2pt 458.0pt 503.8pt 549.6pt 595.4pt 641.2pt 687.0pt 732.8pt'><![if !supportLists]><span
 lang=EN-US style='mso-fareast-font-family:"Times New Roman";mso-ansi-language:
 EN-US'><span style='mso-list:Ignore'>-<span style='font:7.0pt "Times New Roman"'>       
@@ -19109,14 +19175,14 @@
 any time, the user can stop the countdown or ringing by pressing the stop
 button.<o:p></o:p></span></p>
 
-<p class=MsoListParagraphCxSpMiddle style='text-indent:-18.0pt;mso-list:l26 level1 lfo37;
+<p class=MsoListParagraphCxSpMiddle style='text-indent:-18.0pt;mso-list:l26 level1 lfo38;
 tab-stops:45.8pt 91.6pt 137.4pt 183.2pt 229.0pt 274.8pt 320.6pt 366.4pt 412.2pt 458.0pt 503.8pt 549.6pt 595.4pt 641.2pt 687.0pt 732.8pt'><![if !supportLists]><span
 lang=EN-US style='mso-fareast-font-family:"Times New Roman";mso-ansi-language:
 EN-US'><span style='mso-list:Ignore'>-<span style='font:7.0pt "Times New Roman"'>       
 </span></span></span><![endif]><span lang=EN-US style='mso-ansi-language:EN-US'>The
 ringing can be stopped by pressing any button (start or stop)<o:p></o:p></span></p>
 
-<p class=MsoListParagraphCxSpLast style='text-indent:-18.0pt;mso-list:l26 level1 lfo37;
+<p class=MsoListParagraphCxSpLast style='text-indent:-18.0pt;mso-list:l26 level1 lfo38;
 tab-stops:45.8pt 91.6pt 137.4pt 183.2pt 229.0pt 274.8pt 320.6pt 366.4pt 412.2pt 458.0pt 503.8pt 549.6pt 595.4pt 641.2pt 687.0pt 732.8pt'><![if !supportLists]><span
 lang=EN-US style='mso-fareast-font-family:"Times New Roman";mso-ansi-language:
 EN-US'><span style='mso-list:Ignore'>-<span style='font:7.0pt "Times New Roman"'>       
@@ -19144,7 +19210,7 @@
  height:471pt;visibility:visible;mso-wrap-style:square'>
  <v:imagedata src="index-Dateien/image021.jpg" o:title="Timer"/>
 </v:shape><![endif]--><![if !vml]><img border=0 width=594 height=628
-src="index-Dateien/image037.jpg" alt=Timer.jpg v:shapes="Grafik_x0020_7"><![endif]></span><span
+src="index-Dateien/image022.jpg" alt=Timer.jpg v:shapes="Grafik_x0020_7"><![endif]></span><span
 lang=EN-US style='mso-ansi-language:EN-US'><o:p></o:p></span></p>
 
 <p class=MsoNormal style='tab-stops:45.8pt 91.6pt 137.4pt 183.2pt 229.0pt 274.8pt 320.6pt 366.4pt 412.2pt 458.0pt 503.8pt 549.6pt 595.4pt 641.2pt 687.0pt 732.8pt'><span
@@ -19239,10 +19305,10 @@
 
 <p class=MsoNormal style='tab-stops:45.8pt 91.6pt 137.4pt 183.2pt 229.0pt 274.8pt 320.6pt 366.4pt 412.2pt 458.0pt 503.8pt 549.6pt 595.4pt 641.2pt 687.0pt 732.8pt'><span
 lang=EN-US style='mso-ansi-language:EN-US'>With eUML, the code is equivalent to
-the model (and could be parsed back to the model if necessary). So let’s
-go back to what we wrote in the model and analyze the conversion:<o:p></o:p></span></p>
+the model (and could be parsed back to the model if necessary). So let’s go
+back to what we wrote in the model and analyze the conversion:<o:p></o:p></span></p>
 
-<p class=MsoListParagraphCxSpFirst style='text-indent:-18.0pt;mso-list:l26 level1 lfo37;
+<p class=MsoListParagraphCxSpFirst style='text-indent:-18.0pt;mso-list:l26 level1 lfo38;
 tab-stops:45.8pt 91.6pt 137.4pt 183.2pt 229.0pt 274.8pt 320.6pt 366.4pt 412.2pt 458.0pt 503.8pt 549.6pt 595.4pt 641.2pt 687.0pt 732.8pt'><![if !supportLists]><span
 lang=EN-US style='mso-fareast-font-family:"Times New Roman";mso-ansi-language:
 EN-US'><span style='mso-list:Ignore'>-<span style='font:7.0pt "Times New Roman"'>       
@@ -19255,7 +19321,7 @@
 <span style='color:#030003'>Event_</span><<span style='color:#030003'>m_timer</span>>()</span><span
 lang=EN-US style='mso-ansi-language:EN-US'><o:p></o:p></span></p>
 
-<p class=MsoListParagraphCxSpMiddle style='text-indent:-18.0pt;mso-list:l26 level1 lfo37;
+<p class=MsoListParagraphCxSpMiddle style='text-indent:-18.0pt;mso-list:l26 level1 lfo38;
 tab-stops:45.8pt 91.6pt 137.4pt 183.2pt 229.0pt 274.8pt 320.6pt 366.4pt 412.2pt 458.0pt 503.8pt 549.6pt 595.4pt 641.2pt 687.0pt 732.8pt'><![if !supportLists]><span
 lang=EN-US style='mso-fareast-font-family:"Times New Roman";mso-ansi-language:
 EN-US'><span style='mso-list:Ignore'>-<span style='font:7.0pt "Times New Roman"'>       
@@ -19274,7 +19340,7 @@
 mso-ansi-language:EN-US;mso-no-proof:yes'> </span><span lang=EN-US
 style='mso-ansi-language:EN-US'><o:p></o:p></span></p>
 
-<p class=MsoListParagraphCxSpMiddle style='text-indent:-18.0pt;mso-list:l26 level1 lfo37;
+<p class=MsoListParagraphCxSpMiddle style='text-indent:-18.0pt;mso-list:l26 level1 lfo38;
 tab-stops:45.8pt 91.6pt 137.4pt 183.2pt 229.0pt 274.8pt 320.6pt 366.4pt 412.2pt 458.0pt 503.8pt 549.6pt 595.4pt 641.2pt 687.0pt 732.8pt'><![if !supportLists]><span
 lang=EN-US style='mso-fareast-font-family:"Times New Roman";mso-ansi-language:
 EN-US'><span style='mso-list:Ignore'>-<span style='font:7.0pt "Times New Roman"'>       
@@ -19287,7 +19353,7 @@
 = <span style='color:#030003'>Int_</span><<span style='color:#030003'>RINGING_TIME</span>>()</span><span
 lang=EN-US style='mso-ansi-language:EN-US'><o:p></o:p></span></p>
 
-<p class=MsoListParagraphCxSpMiddle style='text-indent:-18.0pt;mso-list:l26 level1 lfo37;
+<p class=MsoListParagraphCxSpMiddle style='text-indent:-18.0pt;mso-list:l26 level1 lfo38;
 tab-stops:45.8pt 91.6pt 137.4pt 183.2pt 229.0pt 274.8pt 320.6pt 366.4pt 412.2pt 458.0pt 503.8pt 549.6pt 595.4pt 641.2pt 687.0pt 732.8pt'><![if !supportLists]><span
 lang=EN-US style='mso-fareast-font-family:"Times New Roman";mso-ansi-language:
 EN-US'><span style='mso-list:Ignore'>-<span style='font:7.0pt "Times New Roman"'>       
@@ -19328,14 +19394,14 @@
 
 <p class=MsoNormal style='tab-stops:45.8pt 91.6pt 137.4pt 183.2pt 229.0pt 274.8pt 320.6pt 366.4pt 412.2pt 458.0pt 503.8pt 549.6pt 595.4pt 641.2pt 687.0pt 732.8pt'><span
 lang=EN-US style='mso-ansi-language:EN-US'>The previous example is a standard
-application for state machines. But we want to push our model-driven approach
-further by using a state machine to write an algorithm. I already see some at
-the back of the room looking perplexed. Well, why not? Usually, UML designers
-like to use Activity Diagrams to do this, but mostly for documentation purposes
-because Activity Diagrams are hard to define with a precision needed for
-automatic code generation. On the other hand, state machines have a very strict
-formalism which enables code generation while being “cousin” with
-Activity Diagrams.<o:p></o:p></span></p>
+application for state machines. But we want to push our model-driven approach further
+by using a state machine to write an algorithm. I already see some at the back
+of the room looking perplexed. Well, why not? Usually, UML designers like to
+use Activity Diagrams to do this, but mostly for documentation purposes because
+Activity Diagrams are hard to define with a precision needed for automatic code
+generation. On the other hand, state machines have a very strict formalism
+which enables code generation while being “cousin” with Activity
+Diagrams.<o:p></o:p></span></p>
 
 <p class=MsoNormal style='tab-stops:45.8pt 91.6pt 137.4pt 183.2pt 229.0pt 274.8pt 320.6pt 366.4pt 412.2pt 458.0pt 503.8pt 549.6pt 595.4pt 641.2pt 687.0pt 732.8pt'><span
 lang=EN-US style='mso-ansi-language:EN-US'>Let’s suppose we are asked to
@@ -19376,8 +19442,8 @@
 lang=EN-US style='mso-ansi-language:EN-US'><o:p> </o:p></span></p>
 
 <p class=MsoNormal style='tab-stops:45.8pt 91.6pt 137.4pt 183.2pt 229.0pt 274.8pt 320.6pt 366.4pt 412.2pt 458.0pt 503.8pt 549.6pt 595.4pt 641.2pt 687.0pt 732.8pt'><span
-lang=EN-US style='mso-ansi-language:EN-US'>We now want to do this using a
-model-driven approach with state machines. I suggest the following machine:<o:p></o:p></span></p>
+lang=EN-US style='mso-ansi-language:EN-US'>We now want to do this using a model-driven
+approach with state machines. I suggest the following machine:<o:p></o:p></span></p>
 
 <p class=MsoNormal style='tab-stops:45.8pt 91.6pt 137.4pt 183.2pt 229.0pt 274.8pt 320.6pt 366.4pt 412.2pt 458.0pt 503.8pt 549.6pt 595.4pt 641.2pt 687.0pt 732.8pt'><span
 lang=EN-US style='mso-ansi-language:EN-US'><o:p> </o:p></span></p>
@@ -19388,7 +19454,7 @@
  height:200.4pt;visibility:visible;mso-wrap-style:square'>
  <v:imagedata src="index-Dateien/image023.jpg" o:title="iPodSearch"/>
 </v:shape><![endif]--><![if !vml]><img border=0 width=308 height=267
-src="index-Dateien/image038.jpg" alt=iPodSearch.jpg v:shapes="Grafik_x0020_8"><![endif]></span><span
+src="index-Dateien/image024.jpg" alt=iPodSearch.jpg v:shapes="Grafik_x0020_8"><![endif]></span><span
 lang=EN-US style='mso-ansi-language:EN-US'><o:p></o:p></span></p>
 
 <p class=MsoNormal style='tab-stops:45.8pt 91.6pt 137.4pt 183.2pt 229.0pt 274.8pt 320.6pt 366.4pt 412.2pt 458.0pt 503.8pt 549.6pt 595.4pt 641.2pt 687.0pt 732.8pt'><span
@@ -19951,7 +20017,7 @@
  height:384.6pt;visibility:visible;mso-wrap-style:square'>
  <v:imagedata src="index-Dateien/image025.jpg" o:title="AnnexA"/>
 </v:shape><![endif]--><![if !vml]><img border=0 width=798 height=513
-src="index-Dateien/image039.jpg" alt=AnnexA.jpg v:shapes="Grafik_x0020_9"><![endif]></span><span
+src="index-Dateien/image026.jpg" alt=AnnexA.jpg v:shapes="Grafik_x0020_9"><![endif]></span><span
 lang=EN-US style='mso-ansi-language:EN-US'><br clear=left style='mso-special-character:
 line-break'>
 <o:p></o:p></span></p>
@@ -19968,8 +20034,8 @@
 “Next” column) id 7.<o:p></o:p></span></p>
 
 <p style='tab-stops:45.8pt 91.6pt 137.4pt 183.2pt 229.0pt 274.8pt 320.6pt 366.4pt 412.2pt 458.0pt 503.8pt 549.6pt 595.4pt 641.2pt 687.0pt 732.8pt'><span
-lang=EN-US style='mso-ansi-language:EN-US'>If you have some implicitly created
-states, like transition-less initial states or states created using the </span><span
+lang=EN-US style='mso-ansi-language:EN-US'>If you have some implicitly created states,
+like transition-less initial states or states created using the </span><span
 lang=EN-US style='font-family:"Courier New";mso-ansi-language:EN-US'>explicit_creation</span><span
 lang=EN-US style='mso-ansi-language:EN-US'> typedef, these will be added as a
 source at the end of the transition table.<o:p></o:p></span></p>
@@ -20028,7 +20094,7 @@
 lang=EN-US style='mso-ansi-language:EN-US'>To achieve this, Msm provides a few
 useful tools:<o:p></o:p></span></p>
 
-<p style='margin-left:36.0pt;text-indent:-18.0pt;mso-list:l2 level1 lfo48;
+<p style='margin-left:36.0pt;text-indent:-18.0pt;mso-list:l2 level1 lfo49;
 tab-stops:list 36.0pt'><![if !supportLists]><span lang=EN-US style='font-size:
 10.0pt;mso-bidi-font-size:12.0pt;font-family:Symbol;mso-fareast-font-family:
 Symbol;mso-bidi-font-family:Symbol;mso-ansi-language:EN-US'><span
@@ -20038,7 +20104,7 @@
 lang=EN-US style='mso-ansi-language:EN-US'>: returns a mpl::set of all the
 states defined in the table.<o:p></o:p></span></p>
 
-<p style='margin-left:36.0pt;text-indent:-18.0pt;mso-list:l2 level1 lfo48;
+<p style='margin-left:36.0pt;text-indent:-18.0pt;mso-list:l2 level1 lfo49;
 tab-stops:list 36.0pt'><![if !supportLists]><span lang=EN-US style='font-size:
 10.0pt;mso-bidi-font-size:12.0pt;font-family:Symbol;mso-fareast-font-family:
 Symbol;mso-bidi-font-family:Symbol;mso-ansi-language:EN-US'><span
@@ -20048,7 +20114,7 @@
 lang=EN-US style='mso-ansi-language:EN-US'>: returns a mpl::set of all the
 events defined in the table.<o:p></o:p></span></p>
 
-<p style='margin-left:36.0pt;text-indent:-18.0pt;mso-list:l2 level1 lfo48;
+<p style='margin-left:36.0pt;text-indent:-18.0pt;mso-list:l2 level1 lfo49;
 tab-stops:list 36.0pt'><![if !supportLists]><span lang=EN-US style='font-size:
 10.0pt;mso-bidi-font-size:12.0pt;font-family:Symbol;mso-fareast-font-family:
 Symbol;mso-bidi-font-family:Symbol;mso-ansi-language:EN-US'><span
@@ -20058,7 +20124,7 @@
 EN-US'>mpl::size<>::value</span><span lang=EN-US style='mso-ansi-language:
 EN-US'> you can get the number of elements in the set.<o:p></o:p></span></p>
 
-<p style='margin-left:36.0pt;text-indent:-18.0pt;mso-list:l2 level1 lfo48;
+<p style='margin-left:36.0pt;text-indent:-18.0pt;mso-list:l2 level1 lfo49;
 tab-stops:list 36.0pt'><![if !supportLists]><span lang=EN-US style='font-size:
 10.0pt;mso-bidi-font-size:12.0pt;font-family:Symbol;mso-fareast-font-family:
 Symbol;mso-bidi-font-family:Symbol;mso-ansi-language:EN-US'><span
@@ -20073,7 +20139,7 @@
 "Courier New";mso-ansi-language:EN-US'>cout</span><span lang=EN-US
 style='mso-ansi-language:EN-US'>.<o:p></o:p></span></p>
 
-<p style='margin-left:36.0pt;text-indent:-18.0pt;mso-list:l2 level1 lfo48;
+<p style='margin-left:36.0pt;text-indent:-18.0pt;mso-list:l2 level1 lfo49;
 tab-stops:list 36.0pt'><![if !supportLists]><span lang=EN-US style='font-size:
 10.0pt;mso-bidi-font-size:12.0pt;font-family:Symbol;mso-fareast-font-family:
 Symbol;mso-bidi-font-family:Symbol;mso-ansi-language:EN-US'><span
@@ -20088,7 +20154,7 @@
 lang=EN-US style='mso-ansi-language:EN-US'> as argument will display all the
 states of the state machine.<o:p></o:p></span></p>
 
-<p style='margin-left:36.0pt;text-indent:-18.0pt;mso-list:l2 level1 lfo48;
+<p style='margin-left:36.0pt;text-indent:-18.0pt;mso-list:l2 level1 lfo49;
 tab-stops:list 36.0pt'><![if !supportLists]><span lang=EN-US style='font-size:
 10.0pt;mso-bidi-font-size:12.0pt;font-family:Symbol;mso-fareast-font-family:
 Symbol;mso-bidi-font-family:Symbol;mso-ansi-language:EN-US'><span