public delegate FSMBaseState<TState, TData> StateFunction( FSMBaseEvent<TData> fsmEvent )
type StateFunction = delegate of fsmEvent : FSMBaseEvent<'TData> -> FSMBaseState<'TState, 'TData>