* headers.mk: update dist header list.
	* mln/algebra/vec.hh: add contructor and operator= with literal::zero.
	* mln/canvas/distance_front.hh: avoid a warning.
	* mln/fun/i2v/array.hh,
	* mln/fun/l2l/relabel.hh,
	* mln/convert/from_to.hxx: add new from_to over_loads.
	* mln/convert/impl/all.hh,
	* mln/convert/impl/from_unsigned_to_value.hh: add a new from_to
	implementation to fix ambiguities with from_int_to_value and
	from_float_to_value.
	* mln/win/essential.hh,
	* mln/core/internal/image_identity.hh: update doc.
	* mln/core/routine/essential.hh: fix includes.
	* mln/fun/essential.hh: include fun/meta/essential.hh.
	* mln/util/soft_heap.hh: fix guards.
---
 milena/ChangeLog                                  |   28 +++++
 milena/headers.mk                                 |   12 +-
 milena/mln/algebra/vec.hh                         |   26 ++++-
 milena/mln/canvas/distance_front.hh               |    1 +
 milena/mln/convert/from_to.hxx                    |   42 +++++++
 milena/mln/convert/impl/all.hh                    |    1 +
 milena/mln/convert/impl/from_unsigned_to_value.hh |  132 +++++++++++++++++++++
 milena/mln/core/internal/image_identity.hh        |   15 +--
 milena/mln/core/routine/essential.hh              |   12 +-
 milena/mln/fun/essential.hh                       |   10 +-
 milena/mln/fun/i2v/array.hh                       |   34 ++++++
 milena/mln/fun/l2l/relabel.hh                     |   34 ++++++
 milena/mln/util/soft_heap.hh                      |    6 +-
 milena/mln/win/essential.hh                       |    9 +-
 14 files changed, 328 insertions(+), 34 deletions(-)
 create mode 100644 milena/mln/convert/impl/from_unsigned_to_value.hh
diff --git a/milena/ChangeLog b/milena/ChangeLog
index 4f0c24c..199bdd1 100644
--- a/milena/ChangeLog
+++ b/milena/ChangeLog
@@ -1,5 +1,33 @@
 2009-03-10  Guillaume Lazzara  <lazzara(a)lrde.epita.fr>
 
+	Various small fixes.
+
+	* headers.mk: update dist header list.
+
+	* mln/algebra/vec.hh: add contructor and operator= with literal::zero.
+
+	* mln/canvas/distance_front.hh: avoid a warning.
+
+	* mln/fun/i2v/array.hh,
+	* mln/fun/l2l/relabel.hh,
+	* mln/convert/from_to.hxx: add new from_to over_loads.
+
+	* mln/convert/impl/all.hh,
+	* mln/convert/impl/from_unsigned_to_value.hh: add a new from_to
+	implementation to fix ambiguities with from_int_to_value and
+	from_float_to_value.
+
+	* mln/win/essential.hh,
+	* mln/core/internal/image_identity.hh: update doc.
+
+	* mln/core/routine/essential.hh: fix includes.
+
+	* mln/fun/essential.hh: include fun/meta/essential.hh.
+
+	* mln/util/soft_heap.hh: fix guards.
+
+2009-03-10  Guillaume Lazzara  <lazzara(a)lrde.epita.fr>
+
 	Add meta::first and meta::second.
 
 	* mln/fun/meta/all.hh,
diff --git a/milena/headers.mk b/milena/headers.mk
index e37427e..9513a84 100644
--- a/milena/headers.mk
+++ b/milena/headers.mk
@@ -95,6 +95,7 @@ mln/util/line_graph.hh \
 mln/util/ord.hh \
 mln/util/tree_fast_to_image.hh \
 mln/util/tree.hh \
+mln/util/couple.hh \
 mln/util/index.hh \
 mln/util/multi_site.hh \
 mln/util/branch_iter.hh \
@@ -367,6 +368,7 @@ mln/value/label_8.hh \
 mln/value/essential.hh \
 mln/accu/tuple.hh \
 mln/accu/min_h.hh \
+mln/accu/stat/deviation.hh \
 mln/accu/max.hh \
 mln/accu/lor.hh \
 mln/accu/rank.hh \
@@ -602,7 +604,6 @@ mln/linear/log.hh \
 mln/linear/essential.hh \
 mln/morpho/thinning.hh \
 mln/morpho/meyer_wst.hh \
-mln/morpho/opening.hh \
 mln/morpho/includes.hh \
 mln/morpho/elementary/opening.hh \
 mln/morpho/elementary/gradient_internal.hh \
@@ -634,7 +635,9 @@ mln/morpho/closing/leveling.hh \
 mln/morpho/closing/area_on_vertices.hh \
 mln/morpho/closing/area.hh \
 mln/morpho/closing/volume.hh \
+mln/morpho/closing/sum.hh \
 mln/morpho/closing/height.hh \
+mln/morpho/closing/structural.hh \
 mln/morpho/closing/essential.hh \
 mln/morpho/laplacian.hh \
 mln/morpho/all.hh \
@@ -647,6 +650,7 @@ mln/morpho/opening/area_on_vertices.hh \
 mln/morpho/opening/area.hh \
 mln/morpho/opening/volume.hh \
 mln/morpho/opening/height.hh \
+mln/morpho/opening/structural.hh \
 mln/morpho/opening/essential.hh \
 mln/morpho/attribute/all.hh \
 mln/morpho/attribute/volume.hh \
@@ -665,15 +669,12 @@ mln/morpho/tree/data.hh \
 mln/morpho/tree/compute_attribute_image.hh \
 mln/morpho/general.spe.hh \
 mln/morpho/min.hh \
-mln/morpho/closing.hh \
 mln/morpho/top_hat.hh \
 mln/morpho/erosion.hh \
 mln/morpho/leveling_filter.hh \
-mln/morpho/closing_sum.hh \
 mln/morpho/Rd.hh \
 mln/morpho/thick_miss.hh \
 mln/morpho/algebraic_filter.hh \
-mln/morpho/closing_attribute.hh \
 mln/morpho/rank_filter.hh \
 mln/morpho/essential.hh \
 mln/topo/n_face_iter.hh \
@@ -708,6 +709,7 @@ mln/essential/routine.hh \
 mln/essential/3d.hh \
 mln/essential/2d.hh \
 mln/win/inter.hh \
+mln/win/sphere3d.hh \
 mln/win/backdiag2d.hh \
 mln/win/segment1d.hh \
 mln/win/cuboid3d.hh \
@@ -718,10 +720,10 @@ mln/win/multiple_size.hh \
 mln/win/cube3d.hh \
 mln/win/shift.hh \
 mln/win/sym.hh \
+mln/win/ball.hh \
 mln/win/diff.hh \
 mln/win/multiple.hh \
 mln/win/diag2d.hh \
-mln/win/ball3d.hh \
 mln/win/disk2d.hh \
 mln/win/rectangle2d.hh \
 mln/win/hline2d.hh \
diff --git a/milena/mln/algebra/vec.hh b/milena/mln/algebra/vec.hh
index da2541c..9563a27 100644
--- a/milena/mln/algebra/vec.hh
+++ b/milena/mln/algebra/vec.hh
@@ -1,4 +1,4 @@
-// Copyright (C) 2006, 2008 EPITA Research and Development Laboratory
+// Copyright (C) 2006, 2008, 2009 EPITA Research and Development Laboratory
 // (LRDE)
 //
 // This file is part of the Olena Library.  This library is free
@@ -39,6 +39,7 @@
 # include <mln/core/concept/object.hh>
 
 # include <mln/literal/zero.hh>
+# include <mln/literal/origin.hh>
 # include <mln/norm/l2.hh>
 # include <mln/trait/all.hh>
 # include <mln/trait/value_.hh>
@@ -188,11 +189,16 @@ namespace mln
 
       vec();
 
-      /// \{ Constructors/assignments with literal zero.
+      /// \{ Constructors/assignments with literal::zero.
       vec(const literal::zero_t&);
       vec& operator=(const literal::zero_t&);
       /// \}
 
+      /// \{ Constructors/assignments with literal::origin.
+      vec(const literal::origin_t&);
+      vec& operator=(const literal::origin_t&);
+      /// \}
+
       vec(const vec<n, T>& rhs);
 
       template <typename U>
@@ -386,6 +392,22 @@ namespace mln
 
     template <unsigned n, typename T>
     inline
+    vec<n,T>::vec(const literal::origin_t&)
+    {
+      this->set_all(0);
+    }
+
+    template <unsigned n, typename T>
+    inline
+    vec<n,T>&
+    vec<n,T>::operator=(const literal::origin_t&)
+    {
+      this->set_all(0);
+      return *this;
+    }
+
+    template <unsigned n, typename T>
+    inline
     vec<n,T>::vec(const vec<n,T>& rhs)
       : super_()
     {
diff --git a/milena/mln/canvas/distance_front.hh b/milena/mln/canvas/distance_front.hh
index f374a2b..3eb8eeb 100644
--- a/milena/mln/canvas/distance_front.hh
+++ b/milena/mln/canvas/distance_front.hh
@@ -88,6 +88,7 @@ namespace mln
 	(void) nbh;
 	(void) max;
 	(void) functor;
+	(void) w_win;
       }
 
 
diff --git a/milena/mln/convert/from_to.hxx b/milena/mln/convert/from_to.hxx
index df12d5d..d4ccc22 100644
--- a/milena/mln/convert/from_to.hxx
+++ b/milena/mln/convert/from_to.hxx
@@ -76,6 +76,10 @@ namespace mln
     namespace i2v {
       template <typename T> class array;
     }
+
+    namespace l2l {
+      template <typename T> class relabel;
+    }
   }
 
   namespace histo {
@@ -333,17 +337,55 @@ namespace mln
       void
       from_to_(const util::array<T>& from, fun::i2v::array<T>& to);
 
+      // util::array<T> -> fun::i2v::array<U>
+      template <typename T, typename U>
+      void
+      from_to_(const util::array<T>& from, fun::i2v::array<U>& to);
+
       // std::vector<T> -> fun::i2v::array<T>
       template <typename T>
       void
       from_to_(const std::vector<T>& from, fun::i2v::array<T>& to);
 
+      // std::vector<T> -> fun::i2v::array<U>
+      template <typename T, typename U>
+      void
+      from_to_(const std::vector<T>& from, fun::i2v::array<U>& to);
+
+      // util::array<T1> -> util::array<T2>
+      template <typename T1, typename T2>
+      void
+      from_to_(const util::array<T1>& from, util::array<T2>& to);
+
+
+
+      // util::array<T> -> fun::l2l::relabel<T>
+      template <typename T>
+      void
+      from_to_(const util::array<T>& from, fun::l2l::relabel<T>& to);
+
+      // util::array<T> -> fun::l2l::relabel<U>
+      template <typename T, typename U>
+      void
+      from_to_(const util::array<T>& from, fun::l2l::relabel<U>& to);
+
+      // std::vector<T> -> fun::l2l::relabel<T>
+      template <typename T>
+      void
+      from_to_(const std::vector<T>& from, fun::l2l::relabel<T>& to);
+
+      // std::vector<T> -> fun::l2l::relabel<U>
+      template <typename T, typename U>
+      void
+      from_to_(const std::vector<T>& from, fun::l2l::relabel<U>& to);
+
       // util::array<T1> -> util::array<T2>
       template <typename T1, typename T2>
       void
       from_to_(const util::array<T1>& from, util::array<T2>& to);
 
 
+
       // Accumulator<A> -> mln_result(A)
       template <typename A>
       void
diff --git a/milena/mln/convert/impl/all.hh b/milena/mln/convert/impl/all.hh
index dcaaf24..28cdde1 100644
--- a/milena/mln/convert/impl/all.hh
+++ b/milena/mln/convert/impl/all.hh
@@ -38,6 +38,7 @@
 # include <mln/convert/impl/from_image_to_site_set.hh>
 # include <mln/convert/impl/from_int_to_value.hh>
 # include <mln/convert/impl/from_site_set_to_image.hh>
+# include <mln/convert/impl/from_unsigned_to_value.hh>
 # include <mln/convert/impl/from_value_to_value.hh>
 
 
diff --git a/milena/mln/convert/impl/from_unsigned_to_value.hh b/milena/mln/convert/impl/from_unsigned_to_value.hh
new file mode 100644
index 0000000..4c6bac7
--- /dev/null
+++ b/milena/mln/convert/impl/from_unsigned_to_value.hh
@@ -0,0 +1,132 @@
+// Copyright (C) 2009 EPITA Research and Development Laboratory (LRDE)
+//
+// This file is part of the Olena Library.  This library is free
+// software; you can redistribute it and/or modify it under the terms
+// of the GNU General Public License version 2 as published by the
+// Free Software Foundation.
+//
+// This library is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
+// General Public License for more details.
+//
+// You should have received a copy of the GNU General Public License
+// along with this library; see the file COPYING.  If not, write to
+// the Free Software Foundation, 51 Franklin Street, Fifth Floor,
+// Boston, MA 02111-1307, USA.
+//
+// As a special exception, you may use this file as part of a free
+// software library without restriction.  Specifically, if other files
+// instantiate templates or use macros or inline functions from this
+// file, or you compile this file and link it with other files to
+// produce an executable, this file does not by itself cause the
+// resulting executable to be covered by the GNU General Public
+// License.  This exception does not however invalidate any other
+// reasons why the executable file might be covered by the GNU General
+// Public License.
+
+#ifndef MLN_CONVERT_IMPL_FROM_UNSIGNED_TO_VALUE_HH
+# define MLN_CONVERT_IMPL_FROM_UNSIGNED_TO_VALUE_HH
+
+/// \file mln/convert/impl/from_unsigned_to_value.hh
+///
+/// General conversion procedure from an unsigned to a value.
+///
+/// \todo Augment code + add checks.
+
+# include <utility>
+# include <mln/value/concept/integer.hh>
+# include <mln/core/concept/value.hh>
+# include <mln/math/round.hh>
+
+
+
+
+namespace mln
+{
+
+  namespace convert
+  {
+
+      /// Conversion of an unsigned \p from towards a value \p to.
+      template <typename V>
+      void
+      from_to(const unsigned& from, Value<V>& to);
+
+
+# ifndef MLN_INCLUDE_ONLY
+
+      namespace impl
+      {
+
+	// Case 1:
+
+	template <typename V>
+	inline
+	void
+	from_unsigned_to_value(const unsigned&		  from,
+			       mln::value::Integer<V>&	  to)
+	{
+	  exact(to) = from;
+	}
+
+	template <unsigned n>
+	inline
+	void
+	from_unsigned_to_value(const unsigned&		  from,
+			       mln::value::label<n>&	  to)
+	{
+	  exact(to) = from;
+	}
+
+	// Default: no conversion defined.
+
+	template <typename V>
+	inline
+	void
+	from_unsigned_to_value(const unsigned&,
+			       Value<V>&)
+	{
+	  mlc_abort(V)::check();
+	}
+
+      } // end of namespace mln::convert::impl
+
+
+      namespace internal
+      {
+
+	template <typename V>
+	inline
+	void
+	from_unsigned_to_value_dispatch(const unsigned& from, Value<V>& to)
+	{
+	  impl::from_unsigned_to_value(from, exact(to));
+	}
+
+      } // end of namespace mln::convert::unsignedernal
+
+
+      namespace over_load
+      {
+
+	// Facades.
+	// unsigned-> Value
+	template <typename V>
+	void
+	from_to_(const unsigned& from, Value<V>& to)
+	{
+	  internal::from_unsigned_to_value_dispatch(from, to);
+	}
+
+      } // end of namespace mln::convert::over_load
+
+
+# endif // ! MLN_INCLUDE_ONLY
+
+  } // end of namespace mln::convert
+
+} // end of namespace mln
+
+
+#endif // ! MLN_CONVERT_IMPL_FROM_UNSIGNED_TO_VALUE_HH
diff --git a/milena/mln/core/internal/image_identity.hh b/milena/mln/core/internal/image_identity.hh
index 3a2b20b..bddcdf7 100644
--- a/milena/mln/core/internal/image_identity.hh
+++ b/milena/mln/core/internal/image_identity.hh
@@ -1,4 +1,4 @@
-// Copyright (C) 2007 EPITA Research and Development Laboratory
+// Copyright (C) 2007, 2009 EPITA Research and Development Laboratory
 //
 // This file is part of the Olena Library.  This library is free
 // software; you can redistribute it and/or modify it under the terms
@@ -28,13 +28,12 @@
 #ifndef MLN_CORE_INTERNAL_IMAGE_IDENTITY_HH
 # define MLN_CORE_INTERNAL_IMAGE_IDENTITY_HH
 
-/*! \file mln/core/internal/image_identity.hh
- *
- * \brief Definition of a base class for image morphers w.r.t. identity.
- *
- * \todo Move "fastest impl" elsewhere; it can be used by some other
- * classes.
- */
+/// \file mln/core/internal/image_identity.hh
+///
+/// Definition of a base class for image morphers w.r.t. identity.
+///
+/// \todo Move "fastest impl" elsewhere; it can be used by some other
+/// classes.
 
 # include <mln/core/internal/image_morpher.hh>
 
diff --git a/milena/mln/core/routine/essential.hh b/milena/mln/core/routine/essential.hh
index 26568e5..dfc3d44 100644
--- a/milena/mln/core/routine/essential.hh
+++ b/milena/mln/core/routine/essential.hh
@@ -1,4 +1,4 @@
-// Copyright (C) 2008 EPITA Research and Development Laboratory
+// Copyright (C) 2008, 2009 EPITA Research and Development Laboratory
 //
 // This file is part of the Olena Library.  This library is free
 // software; you can redistribute it and/or modify it under the terms
@@ -28,11 +28,11 @@
 #ifndef MLN_CORE_ROUTINE_ESSENTIAL_HH_
 # define MLN_CORE_ROUTINE_ESSENTIAL_HH_
 
-# include <mln/core/routine/duplicate.hh>
-# include <mln/core/routine/exact.hh>
-# include <mln/core/routine/extend.hh>
-# include <mln/core/routine/initialize.hh>
-# include <mln/core/routine/ops.hh>
+/// \file mln/core/routine/essential.hh
+///
+/// File that includes essential core routines.
+
+# include <mln/core/routine/all.hh>
 
 #endif // !MLN_CORE_ROUTINE_ESSENTIAL_HH_
 
diff --git a/milena/mln/fun/essential.hh b/milena/mln/fun/essential.hh
index 9626e45..393242e 100644
--- a/milena/mln/fun/essential.hh
+++ b/milena/mln/fun/essential.hh
@@ -1,4 +1,4 @@
-// Copyright (C) 2008 EPITA Research and Development Laboratory
+// Copyright (C) 2008, 2009 EPITA Research and Development Laboratory
 //
 // This file is part of the Olena Library.  This library is free
 // software; you can redistribute it and/or modify it under the terms
@@ -28,14 +28,14 @@
 #ifndef MLN_FUN_ESSENTIAL_HH
 # define MLN_FUN_ESSENTIAL_HH
 
-/*! \file mln/fun/essential.hh
- *
- * \brief File that includes essential fun-related routines.
- */
+/// \file mln/fun/essential.hh
+///
+/// File that includes essential fun-related routines.
 
 # include <mln/fun/c.hh>
 # include <mln/fun/ops.hh>
 # include <mln/fun/i2v/essential.hh>
+# include <mln/fun/meta/essential.hh>
 # include <mln/fun/p2b/essential.hh>
 # include <mln/fun/p2v/essential.hh>
 # include <mln/fun/v2b/essential.hh>
diff --git a/milena/mln/fun/i2v/array.hh b/milena/mln/fun/i2v/array.hh
index 13b6d5e..cd00db5 100644
--- a/milena/mln/fun/i2v/array.hh
+++ b/milena/mln/fun/i2v/array.hh
@@ -75,11 +75,22 @@ namespace mln
       void
       from_to_(const util::array<T>& from, fun::i2v::array<T>& to);
 
+      template <typename T, typename U>
+      inline
+      void
+      from_to_(const util::array<T>& from, fun::i2v::array<U>& to);
+
       template <typename T>
       inline
       void
       from_to_(const std::vector<T>& from, fun::i2v::array<T>& to);
 
+      template <typename T, typename U>
+      inline
+      void
+      from_to_(const std::vector<T>& from, fun::i2v::array<U>& to);
+
+
     } // end of namespace mln::convert::over_load
 
   } // end of namespace mln::convert
@@ -157,6 +168,17 @@ namespace mln
 	to = fun::i2v::array<T>(from);
       }
 
+      template <typename T, typename U>
+      inline
+      void
+      from_to_(const util::array<T>& from, fun::i2v::array<U>& to)
+      {
+	mlc_converts_to(T,U)::check();
+
+	for (unsigned i = 0; i < from.nelements(); ++i)
+	  to.append(convert::to<U>(from[i]));
+      }
+
       template <typename T>
       inline
       void
@@ -165,6 +187,18 @@ namespace mln
 	to = fun::i2v::array<T>(from);
       }
 
+      template <typename T, typename U>
+      inline
+      void
+      from_to_(const std::vector<T>& from, fun::i2v::array<U>& to)
+      {
+	mlc_converts_to(T,U)::check();
+
+	for (unsigned i = 0; i < from.size(); ++i)
+	  to.append(convert::to<U>(from[i]));
+      }
+
+
     } // end of namespace mln::convert::over_load
 
   } // end of namespace mln::convert
diff --git a/milena/mln/fun/l2l/relabel.hh b/milena/mln/fun/l2l/relabel.hh
index 16da5b4..a57f3d4 100644
--- a/milena/mln/fun/l2l/relabel.hh
+++ b/milena/mln/fun/l2l/relabel.hh
@@ -72,12 +72,24 @@ namespace mln
       from_to_(const util::array<L>& from,
 	       fun::l2l::relabel<L>& to);
 
+      template <typename T, typename L>
+      inline
+      void
+      from_to_(const util::array<T>& from,
+	       fun::l2l::relabel<L>& to);
+
       template <typename L>
       inline
       void
       from_to_(const std::vector<L>& from,
 	       fun::l2l::relabel<L>& to);
 
+      template <typename T, typename L>
+      inline
+      void
+      from_to_(const std::vector<T>& from,
+	       fun::l2l::relabel<L>& to);
+
     } // end of namespace mln::convert::over_load
 
   } // end of namespace mln::convert
@@ -155,6 +167,17 @@ namespace mln
         to = fun::l2l::relabel<L>(from);
       }
 
+      template <typename T, typename L>
+      inline
+      void
+      from_to_(const util::array<T>& from, fun::l2l::relabel<L>& to)
+      {
+	mlc_converts_to(T,L)::check();
+
+	for (unsigned i = 0; i < from.nelements(); ++i)
+	  to.append(convert::to<L>(from[i]));
+      }
+
       template <typename L>
       inline
       void
@@ -163,6 +186,17 @@ namespace mln
         to = fun::l2l::relabel<L>(from);
       }
 
+      template <typename T, typename L>
+      inline
+      void
+      from_to_(const std::vector<T>& from, fun::l2l::relabel<L>& to)
+      {
+	mlc_converts_to(T,L)::check();
+
+	for (unsigned i = 0; i < from.size(); ++i)
+	  to.append(convert::to<L>(from[i]));
+      }
+
     } // end of namespace mln::convert::over_load
 
   } // end of namespace mln::convert
diff --git a/milena/mln/util/soft_heap.hh b/milena/mln/util/soft_heap.hh
index bff9d11..e0f8768 100644
--- a/milena/mln/util/soft_heap.hh
+++ b/milena/mln/util/soft_heap.hh
@@ -25,8 +25,8 @@
 // reasons why the executable file might be covered by the GNU General
 // Public License.
 
-#ifndef MLN_UTIL_FAST_HEAP_HH
-# define MLN_UTIL_FAST_HEAP_HH
+#ifndef MLN_UTIL_SOFT_HEAP_HH
+# define MLN_UTIL_SOFT_HEAP_HH
 
 /// \file mln/util/soft_heap.hh
 ///
@@ -1132,4 +1132,4 @@ namespace mln
 } // end of namespace mln
 
 
-#endif // ! MLN_UTIL_FAST_HEAP_HH
+#endif // ! MLN_UTIL_SOFT_HEAP_HH
diff --git a/milena/mln/win/essential.hh b/milena/mln/win/essential.hh
index e6fe809..00a4995 100644
--- a/milena/mln/win/essential.hh
+++ b/milena/mln/win/essential.hh
@@ -1,4 +1,4 @@
-// Copyright (C) 2008 EPITA Research and Development Laboratory
+// Copyright (C) 2009 EPITA Research and Development Laboratory
 //
 // This file is part of the Olena Library.  This library is free
 // software; you can redistribute it and/or modify it under the terms
@@ -28,10 +28,9 @@
 #ifndef MLN_WIN_ESSENTIAL_HH
 # define MLN_WIN_ESSENTIAL_HH
 
-/*! \file mln/win/essential.hh
- *
- * \brief File that includes essential win-related routines.
- */
+/// \file mln/win/essential.hh
+///
+/// File that includes essential win-related routines.
 
 // Types.
 
-- 
1.5.6.5