namespace boost {
  namespace dataflow {
    template<typename T, typename Direction, 
             typename Mechanism = default_mechanism, 
             typename Tag = default_tag, typename Enable = void> 
      struct has_default_port;
    template<typename T, typename Direction, 
             typename Mechanism = default_mechanism, 
             typename Tag = default_tag, typename Enable = void> 
      struct default_traits_of;

    // Returns the default port for a Direction and Mechanism. 
    template<typename Direction, typename Mechanism, Tag  = default_tag, 
             typename T1> 
      unspecified get_default_port(T1 & t1);
  }
}