anchor.diff:        function  AddTransition(const FromState, ToState : TState; const OnCommand : TCommand;
           const OnEnter : TOnEnterStateProc; const OnExit : TOnExitStateProc = nil
           ) : IFiniteStateMachine; overload;
  +      function  AddTransitions(const FromStates : array of TState; const ToState : TState; const OnCommand : TCommand
  +        ) : IFiniteStateMachine; overload;
  +      function  AddTransitions(const FromStates : array of TState; const ToState : TState; const OnCommand : TCommand;
  +        const OnEnter : TOnEnterStateMethod; const OnExit : TOnExitStateMethod = nil
  +        ) : IFiniteStateMachine; overload;
  +      function  AddTransitions(const FromStates : array of TState; const ToState : TState; const OnCommand : TCommand;
  +        const OnEnter : TOnEnterStateProc; const OnExit : TOnExitStateProc = nil
  +        ) : IFiniteStateMachine; overload;
         function  Execute(const Command : TCommand) : IFiniteStateMachine;
         function  GetReachableState(const FromState : TState; const OnCommand : TCommand) : TState; overload;
         function  GetReachableState(const OnCommand : TCommand) : TState; overload;
  
positive.code:   Result := Self;
  end;
  
  function TThreadFiniteStateMachine<TState, TCommand, ErrorClass>.AddTransition(const FromState, ToState : TState;
    const OnCommand : TCommand; const OnEnter : TOnEnterStateMethod; const OnExit : TOnExitStateMethod) : IFiniteStateMachine;
  begin
  
negative.code: begin
    T := TTransition.Create(FromState, OnCommand, FStateComparer, FCommandComparer, OnEnter, OnExit);
    Result := AddTransition(T, ToState);
  end;
  
  function TFiniteStateMachine<TState, TCommand, ErrorClass>.AddTransitions(const FromStates : array of TState;
    const ToState : TState; const OnCommand : TCommand) : IFiniteStateMachine;
  var
    State : TState;
  begin
    for State in FromStates do
      AddTransition(State, ToState, OnCommand);
  
    Result := Self;
  end;
  
  function TFiniteStateMachine<TState, TCommand, ErrorClass>.AddTransitions(const FromStates : array of TState;
    const ToState : TState; const OnCommand : TCommand; const OnEnter : TOnEnterStateMethod;
    const OnExit : TOnExitStateMethod) : IFiniteStateMachine;
  var
    State : TState;
  begin
    for State in FromStates do
      AddTransition(State, ToState, OnCommand, OnEnter, OnExit);
  
    Result := Self;
  end;
  
  function TFiniteStateMachine<TState, TCommand, ErrorClass>.AddTransitions(const FromStates : array of TState;
    const ToState : TState; const OnCommand : TCommand; const OnEnter : TOnEnterStateProc;
    const OnExit : TOnExitStateProc) : IFiniteStateMachine;
  var
    State : TState;
  begin
    for State in FromStates do
      AddTransition(State, ToState, OnCommand, OnEnter, OnExit);
  
    Result := Self;
  end;
  
  function TFiniteStateMachine<TState, TCommand, ErrorClass>.AddTransition(var Transition : TTransition;
  