anchor.diff:  
   function TFiniteStateMachine<TState, TCommand, ErrorClass>.GetReachableState(const FromState : TState;
     const OnCommand : TCommand) : TState;
  -begin
  -  //TODO: implement
  +  var
  +    T : TTransition;
  +begin
  +  Result := GetReachableState(FromState, OnCommand, T);
  +end;
  +
  +function TFiniteStateMachine<TState, TCommand, ErrorClass>.GetReachableState(const FromState : TState;
  +  const OnCommand : TCommand; out Transition : TTransition) : TState;
  +begin
  +  if HasTransition(FromState, OnCommand, Transition) then
  +    Result := FTransitionTable[Transition]
  +  else
  +    //TODO: raise exception
   end;
   
   function TFiniteStateMachine<TState, TCommand, ErrorClass>.GetReachableState(const OnCommand : TCommand) : TState;
   begin
     Result := GetReachableState(FCurrentState, OnCommand);
  +end;
  +
  +function TFiniteStateMachine<TState, TCommand, ErrorClass>.HasTransition(const FromState : TState;
  +  const OnCommand : TCommand) : Boolean;
  +  var
  +    T : TTransition;
  +begin
  +  Result := HasTransition(FromState, OnCommand, T);
   end;
   
   function TFiniteStateMachine<TState, TCommand, ErrorClass>.HasTransition(const FromState : TState;
  
positive.code: end;
  
  function TFiniteStateMachine<TState, TCommand, ErrorClass>.Execute(const Command : TCommand) : IFiniteStateMachine;
  begin
    Result := Self;
  
    //TODO: implement
  end;
  
  function TFiniteStateMachine<TState, TCommand, ErrorClass>.FindTransition(const FromState : TState;
  
negative.code:   Result := Assigned(Found);
  end;
  
  function TFiniteStateMachine<TState, TCommand, ErrorClass>.HasTransition(const OnCommand : TCommand) : Boolean;
  begin
    Result := HasTransition(FCurrentState, OnCommand);
  