namespace boost {
  template<typename R, typename T1, typename T2, ..., typename TN, 
           typename Combiner = last_value<R>, typename Group = int, 
           typename GroupCompare = std::less<Group>, 
           typename SlotFunction = functionN<R, T1, T2, ..., TN> > 
    class signalN;
  template<typename Signature, typename Combiner = last_value<R>, 
           typename Group = int, typename GroupCompare = std::less<Group>, 
           typename SlotFunction = functionN<Signature> > 
    class signal;
  namespace signals {
    enum connect_position { at_front, at_back };
  }
}