Index: graph_archetypes.hpp
===================================================================
--- graph_archetypes.hpp	(revision 83422)
+++ graph_archetypes.hpp	(working copy)
@@ -36,8 +36,6 @@
 #endif
     typedef Vertex vertex_descriptor;
     typedef unsigned int degree_size_type;
-    typedef unsigned int vertices_size_type;
-    typedef unsigned int edges_size_type;
     struct edge_descriptor {
       edge_descriptor() { }
       edge_descriptor(const detail::dummy_constructor&) { }
@@ -49,11 +47,6 @@
     typedef Directed directed_category;
     typedef ParallelCategory edge_parallel_category;
 
-    typedef void adjacency_iterator;
-    typedef void in_edge_iterator;
-    typedef void vertex_iterator;
-    typedef void edge_iterator;
-
     static vertex_descriptor null_vertex() {return vertex_descriptor();}
   };
   template <typename V, typename D, typename P, typename B>
@@ -94,20 +87,12 @@
     struct traversal_category
       : public adjacency_graph_tag, public base_trav_cat { };
     typedef Vertex vertex_descriptor;
-    typedef unsigned int degree_size_type;
-    typedef unsigned int vertices_size_type;
-    typedef unsigned int edges_size_type;
     typedef void edge_descriptor;
     typedef input_iterator_archetype<Vertex> adjacency_iterator;
 
     typedef Directed directed_category;
     typedef ParallelCategory edge_parallel_category;
 
-    typedef void in_edge_iterator;
-    typedef void out_edge_iterator;
-    typedef void vertex_iterator;
-    typedef void edge_iterator;
-
     static vertex_descriptor null_vertex() {return vertex_descriptor();}
   };
   
@@ -120,12 +105,6 @@
     return std::make_pair(Iter(), Iter());
   }
 
-  template <typename V, typename D, typename P, typename B>
-  typename adjacency_graph_archetype<V,D,P,B>::degree_size_type
-  out_degree(const V&, const adjacency_graph_archetype<V,D,P,B>& )
-  {
-    return 0;
-  }
 
   //===========================================================================
   template <typename Vertex, typename Directed, typename ParallelCategory,
@@ -144,21 +123,17 @@
     typedef immutable_graph_tag mutability_category;
 #endif
     typedef Vertex vertex_descriptor;
-    typedef unsigned int degree_size_type;
+    typedef typename Incidence::degree_size_type degree_size_type;
     typedef typename Incidence::edge_descriptor edge_descriptor;
     typedef typename Incidence::out_edge_iterator out_edge_iterator;
     typedef typename Adjacency::adjacency_iterator adjacency_iterator;
 
     typedef input_iterator_archetype<Vertex> vertex_iterator;
     typedef unsigned int vertices_size_type;
-    typedef unsigned int edges_size_type;
 
     typedef Directed directed_category;
     typedef ParallelCategory edge_parallel_category;
 
-    typedef void in_edge_iterator;
-    typedef void edge_iterator;
-
     static vertex_descriptor null_vertex() {return vertex_descriptor();}
   };
   
@@ -178,7 +153,6 @@
     return 0;
   }
 
-  // ambiguously inherited from incidence graph and adjacency graph
   template <typename V, typename D, typename P, typename B>
   typename vertex_list_graph_archetype<V,D,P,B>::degree_size_type
   out_degree(const V&, const vertex_list_graph_archetype<V,D,P,B>& )
