I would like to create a state_machine class that contains some context information that can be written by orthogonal<0> and read by orthogonal<1>.  Graphically:
 _______________
| State Machine |
|_______________|______________
|                               |
|    StateA1 <------> StateA2   |
|  - - - - - - - - - - - - - -  |
|    StateB1 <------> StateB2   |
|_______________________________|

I declare using

struct StateA1, StateB1;
struct MyStateMachine : sc::state_machine< MyStateMachine, mpl::list<StateA1, StateB1> > {};
struct StateA1 : sc::simple_state<StateA1, MyStateMachine::orthogonal<0> > {};

but get a compile error on line 2 as "orthogonal not a member of MyStateMachine".  Do I need to declare one state in MyStateMachine, and make the mpl::list a second template argument to it in order to get what I want?

Thanks in advance,
Chris