/**
     * Q: how can this be optimized?
     * @brief provides access to all call transitions with the given from state
     *        and symbol in this collection of transitions
     *
     * @param - from: the desired from state for the call transitions
     * @param - sym: the desired symbol for the call transitions
     * @return the set of call transitions with the given from state and symbol
     *
     */
    const TransitionStorage::Calls TransitionStorage::getCalls( State from, Symbol sym ) const 
    {
      Calls result;
      Calls const & outgoing = T_info.callTrans(from);

      for( CallIterator cit = outgoing.begin(); cit != outgoing.end(); cit++ )
      {
        if( getCallSym(*cit) == sym )
          result.insert(*cit);
      } 
      return result;
    }
    /** 
     *
     * @brief removes all call transitions with the given symbol 
     *
     * @param - sym: the symbol whose transitions to remove
     * @return false if no transitions were removed, true otherwise
     *
     */
    bool TransitionStorage::removeCallTransSym( Symbol sym )
    {
      Calls removeTrans;

      //Find transitions to remove.
      for( CallIterator cit = callTrans.begin(); cit != callTrans.end(); cit++ )
      {
        if( getCallSym(*cit) == sym )
          removeTrans.insert(*cit);
      }

      //Remove transitions.
      for( CallIterator rit = removeTrans.begin(); rit != removeTrans.end(); rit++ )
      {
        removeCall(*rit);
      }
      
      return removeTrans.size() > 0;  
    }