Index: doc/groups.dox
===================================================================
--- doc/groups.dox	(revision 156)
+++ doc/groups.dox	(revision 192)
@@ -476,9 +476,7 @@
 @defgroup lemon_io Lemon Input-Output
 @ingroup io_group
-\brief Reading and writing LEMON format
-
-This group describes methods for reading and writing LEMON format. 
-You can find more about this format on the \ref graph-io-page "Graph Input-Output"
-tutorial pages.
+\brief Reading and writing \ref lgf-format "Lemon Graph Format".
+
+This group describes methods for reading and writing \ref lgf-format "Lemon Graph Format".
 */
 
Index: doc/lgf.dox
===================================================================
--- doc/lgf.dox	(revision 162)
+++ doc/lgf.dox	(revision 192)
@@ -47,5 +47,5 @@
 
 The \c \@nodes section describes a set of nodes and associated
-maps. The first is a header line, it columns are the names of the
+maps. The first is a header line, its columns are the names of the
 maps appearing in the following lines.
 One of the maps must be called \c
@@ -65,5 +65,5 @@
 
 The \c \@arcs section is very similar to the \c \@nodes section,
-it again starts with a header line describing the names of the arc,
+it again starts with a header line describing the names of the maps,
 but the \c "label" map is not obligatory here. The following lines
 describe the arcs. The first two tokens of each line are
Index: lemon/lgf_reader.h
===================================================================
--- lemon/lgf_reader.h	(revision 190)
+++ lemon/lgf_reader.h	(revision 192)
@@ -19,5 +19,5 @@
 ///\ingroup lemon_io
 ///\file
-///\brief Lemon Graph Format reader.
+///\brief \ref lgf-format "Lemon Graph Format" reader.
 
 
@@ -401,5 +401,5 @@
   /// \ingroup lemon_io
   ///  
-  /// \brief LGF reader for directed graphs
+  /// \brief \ref lgf-format "LGF" reader for directed graphs
   ///
   /// This utility reads an \ref lgf-format "LGF" file.
@@ -411,7 +411,7 @@
   /// with the \c nodeMap() or \c arcMap() members. An optional
   /// converter parameter can also be added as a standard functor
-  /// converting from std::string to the value type of the map. If it
+  /// converting from \c std::string to the value type of the map. If it
   /// is set, it will determine how the tokens in the file should be
-  /// is converted to the map's value type. If the functor is not set,
+  /// converted to the value type of the map. If the functor is not set,
   /// then a default conversion will be used. One map can be read into
   /// multiple map objects at the same time. The \c attribute(), \c
@@ -420,11 +420,11 @@
   ///
   ///\code
-  ///     DigraphReader<Digraph>(std::cin, digraph).
-  ///       nodeMap("coordinates", coord_map).
-  ///       arcMap("capacity", cap_map).
-  ///       node("source", src).
-  ///       node("target", trg).
-  ///       attribute("caption", caption).
-  ///       run();
+  /// DigraphReader<Digraph>(std::cin, digraph).
+  ///   nodeMap("coordinates", coord_map).
+  ///   arcMap("capacity", cap_map).
+  ///   node("source", src).
+  ///   node("target", trg).
+  ///   attribute("caption", caption).
+  ///   run();
   ///\endcode
   ///
@@ -438,12 +438,12 @@
   /// graph) during the reading, but instead the label map of the items
   /// are given as a parameter of these functions. An
-  /// application of these function is multipass reading, which is
-  /// important if two \e \@arcs sections must be read from the
-  /// file. In this example the first phase would read the node set and one
+  /// application of these functions is multipass reading, which is
+  /// important if two \c \@arcs sections must be read from the
+  /// file. In this case the first phase would read the node set and one
   /// of the arc sets, while the second phase would read the second arc
   /// set into an \e ArcSet class (\c SmartArcSet or \c ListArcSet).
   /// The previously read label node map should be passed to the \c
   /// useNodes() functions. Another application of multipass reading when
-  /// paths are given as a node map or an arc map. It is impossible read this in
+  /// paths are given as a node map or an arc map. It is impossible to read this in
   /// a single pass, because the arcs are not constructed when the node
   /// maps are read.
@@ -736,5 +736,5 @@
     /// Use previously constructed node set, and specify the node
     /// label map and a functor which converts the label map values to
-    /// std::string.
+    /// \c std::string.
     template <typename Map, typename Converter>
     DigraphReader& useNodes(const Map& map, 
@@ -769,5 +769,5 @@
     /// Use previously constructed arc set, and specify the arc
     /// label map and a functor which converts the label map values to
-    /// std::string.
+    /// \c std::string.
     template <typename Map, typename Converter>
     DigraphReader& useArcs(const Map& map, 
@@ -785,10 +785,9 @@
     ///
     /// Omit the reading of the node section. This implies that each node
-    /// map reading rule will be abanoned, and the nodes of the graph
+    /// map reading rule will be abandoned, and the nodes of the graph
     /// will not be constructed, which usually cause that the arc set
-    /// could not be read due to lack of node name
-    /// resolving. Therefore, the \c skipArcs() should be used too, or
-    /// the useNodes() member function should be used to specify the
-    /// label of the nodes.
+    /// could not be read due to lack of node name resolving.
+    /// Therefore \c skipArcs() function should also be used, or
+    /// \c useNodes() should be used to specify the label of the nodes.
     DigraphReader& skipNodes() {
       LEMON_ASSERT(!_skip_nodes, "Skip nodes already set"); 
@@ -800,5 +799,5 @@
     ///
     /// Omit the reading of the arc section. This implies that each arc
-    /// map reading rule will be abanoned, and the arcs of the graph
+    /// map reading rule will be abandoned, and the arcs of the graph
     /// will not be constructed.
     DigraphReader& skipArcs() {
@@ -1176,4 +1175,7 @@
   };
 
+  /// \brief Return a \ref DigraphReader class
+  /// 
+  /// This function just returns a \ref DigraphReader class.
   /// \relates DigraphReader
   template <typename Digraph>
@@ -1183,4 +1185,7 @@
   }
 
+  /// \brief Return a \ref DigraphReader class
+  /// 
+  /// This function just returns a \ref DigraphReader class.
   /// \relates DigraphReader
   template <typename Digraph>
@@ -1191,4 +1196,7 @@
   }
 
+  /// \brief Return a \ref DigraphReader class
+  /// 
+  /// This function just returns a \ref DigraphReader class.
   /// \relates DigraphReader
   template <typename Digraph>
@@ -1212,7 +1220,11 @@
   /// \ingroup lemon_io
   ///  
-  /// \brief LGF reader for undirected graphs
+  /// \brief \ref lgf-format "LGF" reader for undirected graphs
   ///
   /// This utility reads an \ref lgf-format "LGF" file.
+  ///
+  /// It can be used almost the same way as \c DigraphReader.
+  /// The only difference is that this class can handle edges and
+  /// edge maps as well as arcs and arc maps.
   template <typename _Graph>
   class GraphReader {
@@ -1263,5 +1275,5 @@
     /// \brief Constructor
     ///
-    /// Construct a undirected graph reader, which reads from the given
+    /// Construct an undirected graph reader, which reads from the given
     /// input stream.
     GraphReader(std::istream& is, Graph& graph) 
@@ -1272,5 +1284,5 @@
     /// \brief Constructor
     ///
-    /// Construct a undirected graph reader, which reads from the given
+    /// Construct an undirected graph reader, which reads from the given
     /// file.
     GraphReader(const std::string& fn, Graph& graph) 
@@ -1281,5 +1293,5 @@
     /// \brief Constructor
     ///
-    /// Construct a undirected graph reader, which reads from the given
+    /// Construct an undirected graph reader, which reads from the given
     /// file.
     GraphReader(const char* fn, Graph& graph) 
@@ -1498,5 +1510,5 @@
     /// \brief Set \c \@nodes section to be read
     ///
-    /// Set \c \@nodes section to be read
+    /// Set \c \@nodes section to be read.
     GraphReader& nodes(const std::string& caption) {
       _nodes_caption = caption;
@@ -1506,5 +1518,5 @@
     /// \brief Set \c \@edges section to be read
     ///
-    /// Set \c \@edges section to be read
+    /// Set \c \@edges section to be read.
     GraphReader& edges(const std::string& caption) {
       _edges_caption = caption;
@@ -1514,5 +1526,5 @@
     /// \brief Set \c \@attributes section to be read
     ///
-    /// Set \c \@attributes section to be read
+    /// Set \c \@attributes section to be read.
     GraphReader& attributes(const std::string& caption) {
       _attributes_caption = caption;
@@ -1545,5 +1557,5 @@
     /// Use previously constructed node set, and specify the node
     /// label map and a functor which converts the label map values to
-    /// std::string.
+    /// \c std::string.
     template <typename Map, typename Converter>
     GraphReader& useNodes(const Map& map, 
@@ -1578,5 +1590,5 @@
     /// Use previously constructed edge set, and specify the edge
     /// label map and a functor which converts the label map values to
-    /// std::string.
+    /// \c std::string.
     template <typename Map, typename Converter>
     GraphReader& useEdges(const Map& map, 
@@ -1591,13 +1603,13 @@
     }
 
-    /// \brief Skips the reading of node section
+    /// \brief Skip the reading of node section
     ///
     /// Omit the reading of the node section. This implies that each node
-    /// map reading rule will be abanoned, and the nodes of the graph
+    /// map reading rule will be abandoned, and the nodes of the graph
     /// will not be constructed, which usually cause that the edge set
     /// could not be read due to lack of node name
-    /// resolving. Therefore, the \c skipEdges() should be used too, or
-    /// the useNodes() member function should be used to specify the
-    /// label of the nodes.
+    /// could not be read due to lack of node name resolving.
+    /// Therefore \c skipEdges() function should also be used, or
+    /// \c useNodes() should be used to specify the label of the nodes.
     GraphReader& skipNodes() {
       LEMON_ASSERT(!_skip_nodes, "Skip nodes already set"); 
@@ -1606,8 +1618,8 @@
     }
 
-    /// \brief Skips the reading of edge section
+    /// \brief Skip the reading of edge section
     ///
     /// Omit the reading of the edge section. This implies that each edge
-    /// map reading rule will be abanoned, and the edges of the graph
+    /// map reading rule will be abandoned, and the edges of the graph
     /// will not be constructed.
     GraphReader& skipEdges() {
@@ -1983,4 +1995,7 @@
   };
 
+  /// \brief Return a \ref GraphReader class
+  /// 
+  /// This function just returns a \ref GraphReader class.
   /// \relates GraphReader
   template <typename Graph>
@@ -1990,4 +2005,7 @@
   }
 
+  /// \brief Return a \ref GraphReader class
+  /// 
+  /// This function just returns a \ref GraphReader class.
   /// \relates GraphReader
   template <typename Graph>
@@ -1998,4 +2016,7 @@
   }
 
+  /// \brief Return a \ref GraphReader class
+  /// 
+  /// This function just returns a \ref GraphReader class.
   /// \relates GraphReader
   template <typename Graph>
@@ -2011,11 +2032,13 @@
   SectionReader sectionReader(const char* fn);
   
+  /// \ingroup lemon_io
+  ///
   /// \brief Section reader class
   ///
-  /// In the \e LGF file extra sections can be placed, which contain
-  /// any data in arbitrary format. Such sections can be read with
-  /// this class. A reading rule can be added with two different
-  /// functions, with the \c sectionLines() function a functor can
-  /// process the section line-by-line. While with the \c
+  /// In the \ref lgf-format "LGF" file extra sections can be placed, 
+  /// which contain any data in arbitrary format. Such sections can be
+  /// read with this class. A reading rule can be added to the class 
+  /// with two different functions. With the \c sectionLines() function a
+  /// functor can process the section line-by-line, while with the \c
   /// sectionStream() member the section can be read from an input
   /// stream.
@@ -2106,5 +2129,5 @@
     ///\endcode
     ///
-    /// The functor is implemented as an struct:
+    /// The functor is implemented as a struct:
     ///\code
     ///  struct NumberSection {
@@ -2124,5 +2147,5 @@
     template <typename Functor>
     SectionReader& sectionLines(const std::string& type, Functor functor) {
-      LEMON_ASSERT(!type.empty(), "Type is not empty.");
+      LEMON_ASSERT(!type.empty(), "Type is empty.");
       LEMON_ASSERT(_sections.find(type) == _sections.end(), 
 		   "Multiple reading of section.");
@@ -2136,5 +2159,5 @@
     ///
     /// The first parameter is the type of the section, the second is
-    /// a functor, which takes an \c std::istream& and an int&
+    /// a functor, which takes an \c std::istream& and an \c int&
     /// parameter, the latter regard to the line number of stream. The
     /// functor can read the input while the section go on, and the
@@ -2142,5 +2165,5 @@
     template <typename Functor>
     SectionReader& sectionStream(const std::string& type, Functor functor) {
-      LEMON_ASSERT(!type.empty(), "Type is not empty.");
+      LEMON_ASSERT(!type.empty(), "Type is empty.");
       LEMON_ASSERT(_sections.find(type) == _sections.end(), 
 		   "Multiple reading of section.");
@@ -2187,5 +2210,5 @@
     /// \brief Start the batch processing
     ///
-    /// This function starts the batch processing
+    /// This function starts the batch processing.
     void run() {
       
@@ -2240,4 +2263,7 @@
   };
 
+  /// \brief Return a \ref SectionReader class
+  /// 
+  /// This function just returns a \ref SectionReader class.
   /// \relates SectionReader
   inline SectionReader sectionReader(std::istream& is) {
@@ -2246,4 +2272,7 @@
   }
 
+  /// \brief Return a \ref SectionReader class
+  /// 
+  /// This function just returns a \ref SectionReader class.
   /// \relates SectionReader
   inline SectionReader sectionReader(const std::string& fn) {
@@ -2252,4 +2281,7 @@
   }
 
+  /// \brief Return a \ref SectionReader class
+  /// 
+  /// This function just returns a \ref SectionReader class.
   /// \relates SectionReader
   inline SectionReader sectionReader(const char* fn) {
@@ -2270,17 +2302,18 @@
   /// reading the graph.
   ///
-  ///\code LgfContents contents("graph.lgf"); 
+  ///\code 
+  /// LgfContents contents("graph.lgf"); 
   /// contents.run();
   ///
-  /// // does it contain any node section and arc section
+  /// // Does it contain any node section and arc section?
   /// if (contents.nodeSectionNum() == 0 || contents.arcSectionNum()) {
-  ///   std::cerr << "Failure, cannot find graph" << std::endl;
+  ///   std::cerr << "Failure, cannot find graph." << std::endl;
   ///   return -1;
   /// }
-  /// std::cout << "The name of the default node section : " 
+  /// std::cout << "The name of the default node section: " 
   ///           << contents.nodeSection(0) << std::endl;
-  /// std::cout << "The number of the arc maps : " 
+  /// std::cout << "The number of the arc maps: " 
   ///           << contents.arcMaps(0).size() << std::endl;
-  /// std::cout << "The name of second arc map : " 
+  /// std::cout << "The name of second arc map: " 
   ///           << contents.arcMaps(0)[1] << std::endl;
   ///\endcode
@@ -2353,7 +2386,7 @@
     }
 
-    /// \brief Returns the section name at the given position. 
-    ///
-    /// Returns the section name at the given position. 
+    /// \brief Returns the node section name at the given position. 
+    ///
+    /// Returns the node section name at the given position. 
     const std::string& nodeSection(int i) const {
       return _node_sections[i];
@@ -2380,7 +2413,7 @@
     }
 
-    /// \brief Returns the section name at the given position. 
-    ///
-    /// Returns the section name at the given position. 
+    /// \brief Returns the arc/edge section name at the given position. 
+    ///
+    /// Returns the arc/edge section name at the given position. 
     /// \note It is synonym of \c edgeSection().
     const std::string& arcSection(int i) const {
@@ -2437,7 +2470,7 @@
     }
 
-    /// \brief Returns the section name at the given position. 
-    ///
-    /// Returns the section name at the given position. 
+    /// \brief Returns the attribute section name at the given position. 
+    ///
+    /// Returns the attribute section name at the given position. 
     const std::string& attributeSectionNames(int i) const {
       return _attribute_sections[i];
@@ -2530,7 +2563,7 @@
     /// @{
 
-    /// \brief Start the reading
-    ///
-    /// This function starts the reading
+    /// \brief Starts the reading
+    ///
+    /// This function starts the reading.
     void run() {
 
Index: lemon/lgf_writer.h
===================================================================
--- lemon/lgf_writer.h	(revision 190)
+++ lemon/lgf_writer.h	(revision 192)
@@ -19,5 +19,5 @@
 ///\ingroup lemon_io
 ///\file
-///\brief Lemon Graph Format writer.
+///\brief \ref lgf-format "Lemon Graph Format" writer.
 
 
@@ -323,5 +323,5 @@
   /// \ingroup lemon_io
   ///  
-  /// \brief LGF writer for directed graphs
+  /// \brief \ref lgf-format "LGF" writer for directed graphs
   ///
   /// This utility writes an \ref lgf-format "LGF" file.
@@ -333,6 +333,6 @@
   /// with the \c nodeMap() or \c arcMap() members. An optional
   /// converter parameter can also be added as a standard functor
-  /// converting from the value type of the map to std::string. If it
-  /// is set, it will determine how the map's value type is written to
+  /// converting from the value type of the map to \c std::string. If it
+  /// is set, it will determine how the value type of the map is written to
   /// the output stream. If the functor is not set, then a default
   /// conversion will be used. The \c attribute(), \c node() and \c
@@ -340,13 +340,13 @@
   ///
   ///\code
-  ///     DigraphWriter<Digraph>(std::cout, digraph).
-  ///       nodeMap("coordinates", coord_map).
-  ///       nodeMap("size", size).
-  ///       nodeMap("title", title).
-  ///       arcMap("capacity", cap_map).
-  ///       node("source", src).
-  ///       node("target", trg).
-  ///       attribute("caption", caption).
-  ///       run();
+  /// DigraphWriter<Digraph>(std::cout, digraph).
+  ///   nodeMap("coordinates", coord_map).
+  ///   nodeMap("size", size).
+  ///   nodeMap("title", title).
+  ///   arcMap("capacity", cap_map).
+  ///   node("source", src).
+  ///   node("target", trg).
+  ///   attribute("caption", caption).
+  ///   run();
   ///\endcode
   ///
@@ -487,7 +487,7 @@
     /// @{
     
-    /// \brief Node map reading rule
-    ///
-    /// Add a node map reading rule to the writer.
+    /// \brief Node map writing rule
+    ///
+    /// Add a node map writing rule to the writer.
     template <typename Map>
     DigraphWriter& nodeMap(const std::string& caption, const Map& map) {
@@ -587,10 +587,10 @@
     }
 
-    /// \name Select section by name
+    /// \name Section captions
     /// @{
 
-    /// \brief Set \c \@nodes section to be read
-    ///
-    /// Set \c \@nodes section to be read
+    /// \brief Add an additional caption to the \c \@nodes section
+    ///
+    /// Add an additional caption to the \c \@nodes section.
     DigraphWriter& nodes(const std::string& caption) {
       _nodes_caption = caption;
@@ -598,7 +598,7 @@
     }
 
-    /// \brief Set \c \@arcs section to be read
-    ///
-    /// Set \c \@arcs section to be read
+    /// \brief Add an additional caption to the \c \@arcs section
+    ///
+    /// Add an additional caption to the \c \@arcs section.
     DigraphWriter& arcs(const std::string& caption) {
       _arcs_caption = caption;
@@ -606,7 +606,7 @@
     }
 
-    /// \brief Set \c \@attributes section to be read
-    ///
-    /// Set \c \@attributes section to be read
+    /// \brief Add an additional caption to the \c \@attributes section
+    ///
+    /// Add an additional caption to the \c \@attributes section.
     DigraphWriter& attributes(const std::string& caption) {
       _attributes_caption = caption;
@@ -619,5 +619,5 @@
     /// \brief Skip writing the node set
     ///
-    /// The \c \@nodes section will be not written to the stream.
+    /// The \c \@nodes section will not be written to the stream.
     DigraphWriter& skipNodes() {
       LEMON_ASSERT(!_skip_nodes, "Multiple usage of skipNodes() member");
@@ -628,5 +628,5 @@
     /// \brief Skip writing arc set
     ///
-    /// The \c \@arcs section will be not written to the stream.
+    /// The \c \@arcs section will not be written to the stream.
     DigraphWriter& skipArcs() {
       LEMON_ASSERT(!_skip_arcs, "Multiple usage of skipArcs() member");
@@ -836,5 +836,5 @@
     /// \brief Start the batch processing
     ///
-    /// This function starts the batch processing
+    /// This function starts the batch processing.
     void run() {
       if (!_skip_nodes) {
@@ -851,7 +851,7 @@
     }
 
-    /// \brief Gives back the stream of the writer
-    ///
-    /// Gives back the stream of the writer
+    /// \brief Give back the stream of the writer
+    ///
+    /// Give back the stream of the writer.
     std::ostream& ostream() {
       return *_os;
@@ -861,4 +861,7 @@
   };
 
+  /// \brief Return a \ref DigraphWriter class
+  /// 
+  /// This function just returns a \ref DigraphWriter class.
   /// \relates DigraphWriter
   template <typename Digraph>
@@ -869,4 +872,7 @@
   }
 
+  /// \brief Return a \ref DigraphWriter class
+  /// 
+  /// This function just returns a \ref DigraphWriter class.
   /// \relates DigraphWriter
   template <typename Digraph>
@@ -877,4 +883,7 @@
   }
 
+  /// \brief Return a \ref DigraphWriter class
+  /// 
+  /// This function just returns a \ref DigraphWriter class.
   /// \relates DigraphWriter
   template <typename Digraph>
@@ -899,7 +908,11 @@
   /// \ingroup lemon_io
   ///  
-  /// \brief LGF writer for directed graphs
+  /// \brief \ref lgf-format "LGF" writer for directed graphs
   ///
   /// This utility writes an \ref lgf-format "LGF" file.
+  ///
+  /// It can be used almost the same way as \c DigraphWriter.
+  /// The only difference is that this class can handle edges and
+  /// edge maps as well as arcs and arc maps.
   template <typename _Graph>
   class GraphWriter {
@@ -1024,7 +1037,7 @@
     /// @{
     
-    /// \brief Node map reading rule
-    ///
-    /// Add a node map reading rule to the writer.
+    /// \brief Node map writing rule
+    ///
+    /// Add a node map writing rule to the writer.
     template <typename Map>
     GraphWriter& nodeMap(const std::string& caption, const Map& map) {
@@ -1170,10 +1183,10 @@
     }
 
-    /// \name Select section by name
+    /// \name Section captions
     /// @{
 
-    /// \brief Set \c \@nodes section to be read
-    ///
-    /// Set \c \@nodes section to be read
+    /// \brief Add an additional caption to the \c \@nodes section
+    ///
+    /// Add an additional caption to the \c \@nodes section.
     GraphWriter& nodes(const std::string& caption) {
       _nodes_caption = caption;
@@ -1181,7 +1194,7 @@
     }
 
-    /// \brief Set \c \@edges section to be read
-    ///
-    /// Set \c \@edges section to be read
+    /// \brief Add an additional caption to the \c \@arcs section
+    ///
+    /// Add an additional caption to the \c \@arcs section.
     GraphWriter& edges(const std::string& caption) {
       _edges_caption = caption;
@@ -1189,7 +1202,7 @@
     }
 
-    /// \brief Set \c \@attributes section to be read
-    ///
-    /// Set \c \@attributes section to be read
+    /// \brief Add an additional caption to the \c \@attributes section
+    ///
+    /// Add an additional caption to the \c \@attributes section.
     GraphWriter& attributes(const std::string& caption) {
       _attributes_caption = caption;
@@ -1202,5 +1215,5 @@
     /// \brief Skip writing the node set
     ///
-    /// The \c \@nodes section will be not written to the stream.
+    /// The \c \@nodes section will not be written to the stream.
     GraphWriter& skipNodes() {
       LEMON_ASSERT(!_skip_nodes, "Multiple usage of skipNodes() member");
@@ -1211,5 +1224,5 @@
     /// \brief Skip writing edge set
     ///
-    /// The \c \@edges section will be not written to the stream.
+    /// The \c \@edges section will not be written to the stream.
     GraphWriter& skipEdges() {
       LEMON_ASSERT(!_skip_edges, "Multiple usage of skipEdges() member");
@@ -1419,5 +1432,5 @@
     /// \brief Start the batch processing
     ///
-    /// This function starts the batch processing
+    /// This function starts the batch processing.
     void run() {
       if (!_skip_nodes) {
@@ -1434,7 +1447,7 @@
     }
 
-    /// \brief Gives back the stream of the writer
-    ///
-    /// Gives back the stream of the writer
+    /// \brief Give back the stream of the writer
+    ///
+    /// Give back the stream of the writer
     std::ostream& ostream() {
       return *_os;
@@ -1444,4 +1457,7 @@
   };
 
+  /// \brief Return a \ref GraphWriter class
+  /// 
+  /// This function just returns a \ref GraphWriter class.
   /// \relates GraphWriter
   template <typename Graph>
@@ -1451,4 +1467,7 @@
   }
 
+  /// \brief Return a \ref GraphWriter class
+  /// 
+  /// This function just returns a \ref GraphWriter class.
   /// \relates GraphWriter
   template <typename Graph>
@@ -1458,4 +1477,7 @@
   }
 
+  /// \brief Return a \ref GraphWriter class
+  /// 
+  /// This function just returns a \ref GraphWriter class.
   /// \relates GraphWriter
   template <typename Graph>
