Olena-patches
  Threads by month 
                
            - ----- 2025 -----
 - November
 - October
 - September
 - August
 - July
 - June
 - May
 - April
 - March
 - February
 - January
 - ----- 2024 -----
 - December
 - November
 - October
 - September
 - August
 - July
 - June
 - May
 - April
 - March
 - February
 - January
 - ----- 2023 -----
 - December
 - November
 - October
 - September
 - August
 - July
 - June
 - May
 - April
 - March
 - February
 - January
 - ----- 2022 -----
 - December
 - November
 - October
 - September
 - August
 - July
 - June
 - May
 - April
 - March
 - February
 - January
 - ----- 2021 -----
 - December
 - November
 - October
 - September
 - August
 - July
 - June
 - May
 - April
 - March
 - February
 - January
 - ----- 2020 -----
 - December
 - November
 - October
 - September
 - August
 - July
 - June
 - May
 - April
 - March
 - February
 - January
 - ----- 2019 -----
 - December
 - November
 - October
 - September
 - August
 - July
 - June
 - May
 - April
 - March
 - February
 - January
 - ----- 2018 -----
 - December
 - November
 - October
 - September
 - August
 - July
 - June
 - May
 - April
 - March
 - February
 - January
 - ----- 2017 -----
 - December
 - November
 - October
 - September
 - August
 - July
 - June
 - May
 - April
 - March
 - February
 - January
 - ----- 2016 -----
 - December
 - November
 - October
 - September
 - August
 - July
 - June
 - May
 - April
 - March
 - February
 - January
 - ----- 2015 -----
 - December
 - November
 - October
 - September
 - August
 - July
 - June
 - May
 - April
 - March
 - February
 - January
 - ----- 2014 -----
 - December
 - November
 - October
 - September
 - August
 - July
 - June
 - May
 - April
 - March
 - February
 - January
 - ----- 2013 -----
 - December
 - November
 - October
 - September
 - August
 - July
 - June
 - May
 - April
 - March
 - February
 - January
 - ----- 2012 -----
 - December
 - November
 - October
 - September
 - August
 - July
 - June
 - May
 - April
 - March
 - February
 - January
 - ----- 2011 -----
 - December
 - November
 - October
 - September
 - August
 - July
 - June
 - May
 - April
 - March
 - February
 - January
 - ----- 2010 -----
 - December
 - November
 - October
 - September
 - August
 - July
 - June
 - May
 - April
 - March
 - February
 - January
 - ----- 2009 -----
 - December
 - November
 - October
 - September
 - August
 - July
 - June
 - May
 - April
 - March
 - February
 - January
 - ----- 2008 -----
 - December
 - November
 - October
 - September
 - August
 - July
 - June
 - May
 - April
 - March
 - February
 - January
 - ----- 2007 -----
 - December
 - November
 - October
 - September
 - August
 - July
 - June
 - May
 - April
 - March
 - February
 - January
 - ----- 2006 -----
 - December
 - November
 - October
 - September
 - August
 - July
 - June
 - May
 - April
 - March
 - February
 - January
 - ----- 2005 -----
 - December
 - November
 - October
 - September
 - August
 - July
 - June
 - May
 - April
 - March
 - February
 - January
 - ----- 2004 -----
 - December
 - November
 - October
 - September
 - August
 - July
 - June
 - May
 - April
 - March
 
- 9625 discussions
 
                    
                        https://svn.lrde.epita.fr/svn/oln/trunk/static
This patch is followed by another one where packed_vtypes is removed
from oln/core/abstract/image.hh, since stc/properties.hh defines it now.
Index: ChangeLog
from  Roland Levillain  <roland(a)lrde.epita.fr>
	Add a facility for virtual types packing.
	* stc/properties.hh (packed_vtypes): New packing structure, to
	be specialized by the user.  When properly defined, this structure
	can be used to check if all the virtual types of a class are sound.
	* tests/properties.cc (my_type_of): New macro.
	Define a packed_vtypes structure for the top-most class (my::A) and
	check these virtual types in my::A's subclasses.
 stc/properties.hh   |    7 +++++++
 tests/properties.cc |   47 +++++++++++++++++++++++++++++++++++++++++------
 2 files changed, 48 insertions, 6 deletions
Index: tests/properties.cc
--- tests/properties.cc	(revision 466)
+++ tests/properties.cc	(working copy)
@@ -29,13 +29,13 @@
 #include <mlc/cmp.hh>
 #include <mlc/assert.hh>
 
-// FIXME: Split this test into several smaller tests?  For instance,
-// we have to test inheritance, properties/associated types,
-// ``external properties'', etc.  The best approach is probably to
-// browse stc/properties.hh so as to make a list of the features to be
-// checked.
+// This test focuses on the virtual types system, so the exact type of
+// classes is not propagated here (stc::any is not used).
+
+// Helper macros.
+#define my_type_of(FromType, Typedef)		\
+  typename my_type_of_(FromType, Typedef)
 
-// Helper macro.
 #define my_type_of_(FromType, Typedef)		\
   stc_typeof_(my::category::my_cat, FromType, Typedef)
 
@@ -87,12 +87,35 @@
     typedef mlc::undefined baz_type;
   };
 
+  /// Packing of virtual types of any A class.
+  template <typename T>
+  struct packed_vtypes <category::my_cat, T>
+  {
+    typedef my_type_of(T, foo) foo_type;
+    typedef my_type_of(T, bar) bar_type;
+    typedef my_type_of(T, baz) baz_type;
+
+    static void ensure()
+    {
+      mlc::assert_< mlc_is_ok(foo_type) >::check();
+      mlc::assert_< mlc_is_ok(bar_type) >::check();
+      mlc::assert_< mlc_is_ok(baz_type) >::check();
+    }
+  };
+
   struct A
   {
     // Aliases.
     typedef my_type_of_(A, foo) foo_type;
     typedef my_type_of_(A, bar) bar_type;
     typedef my_type_of_(A, baz) baz_type;
+
+    ~A()
+    {
+      // packed_vtypes<category::my, A> is not checked here, since A's
+      // baz_type virtual type is undefined.
+    }
+
   };
 
 
@@ -135,6 +158,12 @@
     typedef my_type_of_(B, baz) baz_type;
     typedef my_type_of_(B, quux) quux_type;
     typedef my_type_of_(B, yin) yin_type;
+
+    // Check B's vtypes.
+    ~B()
+    {
+      packed_vtypes<category::my_cat, B>::ensure();
+    }
   };
 
 
@@ -167,6 +196,12 @@
     typedef my_type_of_(C, foo) foo_type;
     typedef my_type_of_(C, quux) quux_type;
     typedef my_type_of_(C, zorg) zorg_type;
+
+    // Check C's vtypes.
+    ~C()
+    {
+      packed_vtypes<category::my_cat, C>::ensure();
+    }
   };
 
 }
Index: stc/properties.hh
--- stc/properties.hh	(revision 466)
+++ stc/properties.hh	(working copy)
@@ -116,6 +116,13 @@
   {									      \
   };									      \
 									      \
+  /** Optional packing structure, to be specialized by the user.  */	      \
+  /** See tests/properties.hh for an example of use.              */	      \
+  template <typename category, typename from_type>			      \
+  struct packed_vtypes							      \
+  {									      \
+  };									      \
+									      \
 									      \
   /* -------------------- */						      \
   /* Internal machinery.  */						      \
                    
                  
                  
                          
                            
                            1
                            
                          
                          
                            
                            0
                            
                          
                          
                            
    
                          
                        
                    
                    
                        https://svn.lrde.epita.fr/svn/oln/trunk
Index: ChangeLog
from  Roland Levillain  <roland(a)lrde.epita.fr>
	Add COPYING and NEWS.
	* COPYING: New (imported from oln proto-1.0).
	* NEWS: New (imported from oln 0.10).
 NEWS |  299 +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
 1 file changed, 299 insertions(+)
Index: NEWS
--- NEWS	(revision 0)
+++ NEWS	(revision 0)
@@ -0,0 +1,299 @@
+Olena 1.0
+
+	* SCOOP 2 paradigm.
+
+
+Olena 0.10	April 15, 2004
+
+	* New documentation system.
+	  Now any comment should use doxygen style (i.e. /*! ... */).
+	  You can also write some programs inside the comments. They are
+	  compiled at documentation generation time. It is useful to
+          illustrate some algorithms with concrete input and output. To
+ 	  use this feature the program has to be between \code and \endcode
+	  tags. If you produce an image, you can include it in the comments
+	  with the \image command, using the same name you used to produce
+	  it, but with the png extension. To make sure your image will not
+	  overwrite another existing one, you should name it taking care of
+	  the namespace you are using: e.g. if you comment the function
+	  oln::boo::bar::fun, the image should be named oln_foo_bar_fun.ppm.
+	  The macros IMG_IN and IMG_OUT correspond to the path of the images.
+
+	* Border behavior can be controlled with the behavior hierarchy.
+	  If an algorithm support it, you can choose the way the image
+          border will be seen. Three behaviors are available: mirror,
+	  replicate or user defined value.
+
+	* Attribute opening/closing enhancement
+	  - Make the algorithm more generic.
+	  - Add a lot of attributes (area, disk, square, dist,
+            rectangle, volume, height, maxvalue, minvalue).
+
+	* Change the color conversion system
+	  - CIE RGB is the main color system i.e. it can be converted
+	    directly into any other color system.
+	  - Conversion between 2 color systems should pass by the RGB one.
+
+	* Generic and concrete morphers are now implemented in Olena.
+	  - Five morphers are included in this release:
+		 Color morpher
+		 Sub quantifying morpher
+		 Piece morpher
+		 Iter morpher
+		 Slicing morpher
+	  - These morphers can be manipulated as if they were normal images.
+
+
+Olena 0.9	August 8, 2003
+
+        * New static hierarchy paradigm
+	  - Complete rewrite of the image hierarchy.
+          - The new hierarchy benefits from multiple inheritance and
+	    diamond constructs.
+          - Objects' abstract interfaces made available, leading to
+            safer and easier algorithm writing.
+	  - Label images such as binary_image or vectorial_image added.
+
+        * Partial rewrite of images I/O
+          - Support for 1d, 3d images and windows.
+          - Better handling of built-in types.
+
+        * Color conversions fixed and improved.
+
+        * Cleanup and coding style conformance.
+
+        * Many bug fixes.
+        * Improved test-suite.
+
+
+Olena 0.8	April 10, 2003
+
+	IMPORTANT NOTE: This version is not compatible with older
+	versions of Olena. The project has been split into three part,
+	so many header files have moved and new namespaces have been
+	created. Please read the UPGRADING file for more informations.
+
+	* Many source code cleanups.
+	* The source code has been split into 3 parts: image
+	  processing (olena/), data types (integre/) and meta-programming
+	  tools (metalic/).
+	* First part of the new static hierarchy paradigm implementation.
+	* Support for combinatorial maps.
+	* Many bug fixes.
+
+
+Olena 0.7	February 10, 2003
+
+	* Manual pages for the command-line utilities.
+	* New, saner, source tree layout.
+	* Each `part' of the source tree can be excluded from the
+	  build process with configuration flags.
+	* New `oln.m4' file for use by autoconf'ed user projects.
+	* Major documentation updates.
+	* New `oln-config.sh' scripts for user Makefiles.
+	* Olena now works on MacOS X, NetBSD, FreeBSD and cygwin.
+
+
+Olena 0.6       January 15, 2003
+
+        * Complete rewriting of data types.
+        * Command line utilities.
+        * Fully implementation of convolutions
+        * Fast Fourier Transform (FFT)
+        * Discrete Wavelet Transform (Daubechie's wavelet) (DWT)
+        * Many bug fixes.
+
+
+Olena 0.5       July 25, 2002
+
+        * Documentation in LaTeX (instead of Texinfo).
+        * Support reading/writing gziped images
+          (include <oln/io/gz.hh> and link with libz).
+        * Complete rewrite of the static arrays
+          (meta::array1d, meta::array2d, meta::array3d).
+        * Preliminary implementation of convolutions
+          (oln::convol::convolve)
+        * All headers should now be referenced with the `oln/' prefix,
+          as in `#include <oln/basics2d.hh>'.
+        * New conversion operator: convert::stretch.
+        * Many bug fixes.
+
+
+Olena 0.4.1	April 25, 2002
+
+	* Buglet in the 0.4 Makefiles.
+
+
+Olena 0.4	April 24, 2002
+
+	* New morpho:: operators:
+	  - thinning
+	  - thickening
+	* New convert:: operators:
+	  - ng_to_se
+	  - ng_to_cse
+	* First sketch of a test suite.
+	* Many bug fixes.
+
+
+Olena 0.3	January 14, 2002
+
+	* fast_morpho() speeded-up.
+	* Minor bug fixes.
+	* "Documentation" updates.
+
+
+Olena 0.2b	December 13, 2001
+
+	* Value:
+	  - Support for HSL and HSV color systems.
+	  - Define internal::default_less<vec<N,T>>.
+
+	* Core:
+	  - New window generator: mk_win_ellipse, mk_win_disc,
+	    mk_win_ellipsoid, and mk_win_ball.
+
+	* Various #include fixes.
+
+
+Olena 0.2	November 28, 2001
+
+	* Color:
+	  - nrgb_8, nrgb_16, nrgb_32: new types for NTSC RGB.  The
+            conversion from and to YIQ and HSI which assumed NTSC RGB
+	    has been adjusted to actually use nrgb_* (instead of rgb_*)
+	    and renamed accordingly.
+	  - yuv_8, yuv_16, yuv_32: New types.
+
+	  The currently available conversions are
+
+                    hsi   yuv
+                      \  /
+	       rgb -- nrgb
+                \     /  \
+                  xyz     yiq
+
+	* Various cleanups and bug fixes.  Especially:
+	  - border handling (mirroring, copying) simplified and fixed.
+	  - ++k, --k: return a value with the same type as k.
+
+	* I/O:
+	  - pnm/P1, pnm/P3, and pnm/P6 support for image_3d.
+
+
+Olena 0.1f	November 22, 2001
+
+	* Core:
+	  - Several bug fixes in memory handling.
+
+	* Types:
+	  - New color types: HSI, YIQ; with conversions to and from RGB.
+	  - `min()' and `max()' are now defined with the types (i.e.
+	    not in math/macros.hh), along with the other operators.
+	    Also, these procedures will two arguments of different
+	    types.
+
+	* Casts:
+	  - `cast::round': similar to C's round()
+	  - `cast::rbound': ditto, but constrained to fit the
+            output type's range.
+
+	* I/O:
+	  - Support for `image_3d<int_u<N> >' (as PNM P2 & P5).
+
+	* Processings
+	  - `level::is_greater_or_equal', `level::is_greater',
+	    `level::is_lower_or_equal', `level::is_lower',
+	    `level::is_equal': Comparisons between images.
+	  - `level::connected_component': Number connected components.
+	  - `morpho::geodesic_dilation', `morpho::simple_geodesic_dilation'.
+	  - `morpho::geodesic_erosion', `morpho::simple_geodesic_erosion'.
+          - `morpho::get_plus_se_only', `morpho::get_plus_se_p',
+	    `morpho::get_minus_se_only', `morpho::get_minus_se_p': Split
+	    a structural element in a `plus' (lexicaly before than the center)
+	    and `minus' (after).
+
+	* Misc:
+	  - `utils::timer': for benchmarking
+	  - `level::lut', `level::hlut': Lookup tables.
+
+
+Olena 0.1d	November 15, 2001
+
+	* Core:
+	  - `point's, `dpoint's, and `image_size's feature a `nth()' method,
+	    that returns the value of the nth coordinate.
+	  - `fold': new high order operator.
+
+	* Types:
+	  - `vec<N,T>' uses an array to store its elements
+            and accepts builtin types.
+	  - `rgb<T>' has been replaced by `rgb_8', `rgb_16', `rgb_32'
+	  - `xyz_8', `xyz_16', `xyz_32' are new types.
+	  - the latter six types are instances of the `color' type.
+
+	* Processings:
+	  - All basic morpholohical processings (`opening',
+	    `hit_or_miss', `beucher_gradient', etc.) from namespace
+	    `morpho::' have their fast equivalent in namespace
+	    `morpho::fast::'.
+	  - `convert::apply' is similar to `apply' but will work
+	    for all types of conversions while `apply' can only work
+	    on `conversion_to_type' conversions.
+
+	* Tools:
+	  - `utils::fill': fill an image
+	  - `utils::f_moments', `utils::f_minmax': statistical functors.
+
+	* Casts:
+	  - `cast::bound': similar to `convert::bound'.
+
+	* I/O:
+	  - It's possible to load and save as PPM any kind of image2d
+	    whose color has 3 components on 8 bits.
+
+
+Olena 0.1b	November 8, 2001
+
+	* New type: rgb<T>
+
+	* New processings:
+	  - morpho::watershed_con
+	  - convol::fast::gaussian
+	  - convol::fast::gaussian_derivative
+	  - convol::fast::gaussian_second_derivative
+
+	* Conversion are organized in the following hierarchy
+
+	    conversion<Inferior>
+                  ^
+		  |
+	    conversion_to_type<To,Inferior>
+                  ^
+		  |
+	    conversion_from_type_to_type<From,To,Inferior>
+
+	  All children of conversion_from_type_to_type are models of
+	  Adaptable Unary Function.  See conversion.hh for more comments.
+
+	* The only two functions that perform file i/o are `load' and
+ 	  `save'.  The other functions (`read', `write', `read_pnm',
+	  `write_pnm') have been removed.
+
+	* image2d<rgb<int_u8> > can be loaded and saved as ppm.
+
+	* All iterators support a new method, cur(), that returns
+	  the current point (or dpoint).  It is meant to be used
+	  at places where the compiler is unable to implicitly convert
+	  an iterator into a point (or dpoint).
+
+	* Bug fixes:
+	  - Olena now compiles successfully with -pedantic.
+	  - `image2d<int_u8> lena = load("lena.pgm");' works.
+	  - Multiplications and subtractions on 'vec' no longer
+	    perform additions.
+
+
+Olena 0.1	November 1, 2001
+
+        * Initial public release.
                    
                  
                  
                          
                            
                            1
                            
                          
                          
                            
                            0
                            
                          
                          
                            
    
                          
                        
                    
                    
                        https://svn.lrde.epita.fr/svn/oln/trunk
This patch is not really worth reading.  :)
Index: ChangeLog
from  Roland Levillain  <roland(a)lrde.epita.fr>
	Fix copyright notices.
	* extended/xtd/res.hh,
	* extended/xtd/math.hh,
	* extended/xtd/cast.hh,
	* extended/xtd/cfun.hh,
	* extended/xtd/mexpr.hh,
	* extended/xtd/math/log.hh,
	* extended/xtd/math/floor.hh,
	* extended/xtd/math/tan.hh,
	* extended/xtd/math/log10.hh,
	* extended/xtd/math/atan.hh,
	* extended/xtd/math/cos.hh,
	* extended/xtd/math/acos.hh,
	* extended/xtd/math/sqrt.hh,
	* extended/xtd/math/sin.hh,
	* extended/xtd/math/tanh.hh,
	* extended/xtd/math/asin.hh,
	* extended/xtd/math/cosh.hh,
	* extended/xtd/math/id.hh,
	* extended/xtd/math/exp.hh,
	* extended/xtd/math/logic.hh,
	* extended/xtd/math/sinh.hh,
	* extended/xtd/math/abs.hh,
	* extended/xtd/math/pow.hh,
	* extended/xtd/math/atan2.hh,
	* extended/xtd/math/includes.hh,
	* extended/xtd/math/arith.hh,
	* extended/xtd/math/constraints.hh,
	* extended/xtd/math/ceil.hh,
	* extended/xtd/math/cmp.hh,
	* extended/xtd/literal.hh,
	* extended/xtd/args.hh,
	* extended/xtd/mfun.hh,
	* extended/xtd/abstract/nary_fun.hh,
	* extended/xtd/abstract/open_nary_fun.hh,
	* extended/xtd/abstract/plain_nary_fun.hh,
	* extended/xtd/abstract/fun_expr.hh,
	* extended/xtd/abstract/meta_nary_fun.hh,
	* extended/xtd/abstract/fun.hh,
	* extended/xtd/abstract/open_fun.hh,
	* extended/xtd/abstract/plain_fun.hh,
	* extended/xtd/abstract/meta_fun.hh,
	* extended/xtd/abstract/fun_nary_expr.hh,
	* extended/xtd/optraits.hh,
	* extended/xtd/traits.hh,
	* extended/xtd/builtin/traits.hh,
	* extended/xtd/arg.hh,
	* extended/xtd/bind.hh,
	* extended/xtd/internal/opmacros.hh,
	* extended/xtd/internal/mlc.hh,
	* metalic/mlc/elt.hh,
	* metalic/mlc/ret.hh,
	* metalic/mlc/int.hh,
	* metalic/mlc/pair.hh,
	* metalic/mlc/bool.hh,
	* metalic/mlc/flags.hh,
	* metalic/mlc/comma.hh,
	* metalic/mlc/logic.hh,
	* metalic/mlc/if.hh,
	* metalic/mlc/values.hh,
	* metalic/mlc/typedef.hh,
	* metalic/mlc/assert.hh,
	* metalic/mlc/switch.hh,
	* metalic/mlc/valist.hh,
	* metalic/mlc/implies.hh,
	* metalic/mlc/abstract/type.hh,
	* metalic/mlc/abstract/bexpr.hh,
	* metalic/mlc/abort.hh,
	* metalic/mlc/to_string.hh,
	* metalic/mlc/wrap.hh,
	* metalic/mlc/is_a.hh,
	* metalic/mlc/case.hh,
	* metalic/mlc/value.hh,
	* metalic/mlc/char.hh,
	* metalic/mlc/contract.hh,
	* metalic/mlc/uint.hh,
	* metalic/mlc/cmp.hh,
	* metalic/mlc/bexpr.hh,
	* static/tests/properties.cc,
	* static/tests/entry.cc,
	* static/tests/any.cc: Update the FSF postal address.
	* extended/tests/cfun.cc,
	* extended/tests/id.cc,
	* extended/tests/bind.cc,
	* extended/tests/bi_traits/bool.cc,
	* extended/tests/bi_traits/char.cc,
	* extended/tests/bi_traits/sint.cc,
	* extended/tests/bi_traits/uint.cc,
	* extended/tests/bi_traits/schar.cc,
	* extended/tests/bi_traits/slong.cc,
	* extended/tests/bi_traits/sshort.cc,
	* extended/tests/bi_traits/uchar.cc,
	* extended/tests/bi_traits/ushort.cc,
	* extended/tests/bi_traits/ulong.cc,
	* extended/tests/bi_traits/float.cc,
	* extended/tests/bi_traits/ldouble.cc,
	* extended/tests/bi_traits/double.cc,
	* extended/tests/cos.cc,
	* extended/tests/abs.cc,
	* extended/tests/optraits.cc,
	* extended/tests/lit.cc,
	* extended/tests/math.cc,
	* extended/tests/cast.cc,
	* metalic/tests/is_a.cc,
	* metalic/tests/case.cc,
	* metalic/tests/if.cc,
	* metalic/tests/typedef.cc,
	* metalic/tests/or.cc,
	* metalic/tests/switch.cc,
	* metalic/tests/gcase.cc,
	* metalic/tests/protected.cc,
	* metalic/tests/ret.cc,
	* static/stc/entry.hh,
	* static/stc/any.hh,
	* static/stc/properties.hh: Add missing copyright notices.
	* olena/oln/core/typedefs.hh,
	* olena/oln/core/abstract/image.hh,
	* olena/oln/core/abstract/image_entry.hh,
	* olena/oln/core/abstract/macros.hh,
	* olena/oln/core/abstract/image_dimension.hh,
	* olena/oln/core/abstract/any.hh,
	* olena/oln/core/abstract/internal/image_impl.hh: .
	* olena/tests/image_entry.cc: Fix the FSF postal address.
 extended/tests/abs.cc                          |   27 +++++++++++++++++++++++++
 extended/tests/bi_traits/bool.cc               |   27 +++++++++++++++++++++++++
 extended/tests/bi_traits/char.cc               |   27 +++++++++++++++++++++++++
 extended/tests/bi_traits/double.cc             |   27 +++++++++++++++++++++++++
 extended/tests/bi_traits/float.cc              |   27 +++++++++++++++++++++++++
 extended/tests/bi_traits/ldouble.cc            |   27 +++++++++++++++++++++++++
 extended/tests/bi_traits/schar.cc              |   27 +++++++++++++++++++++++++
 extended/tests/bi_traits/sint.cc               |   27 +++++++++++++++++++++++++
 extended/tests/bi_traits/slong.cc              |   27 +++++++++++++++++++++++++
 extended/tests/bi_traits/sshort.cc             |   27 +++++++++++++++++++++++++
 extended/tests/bi_traits/uchar.cc              |   27 +++++++++++++++++++++++++
 extended/tests/bi_traits/uint.cc               |   27 +++++++++++++++++++++++++
 extended/tests/bi_traits/ulong.cc              |   27 +++++++++++++++++++++++++
 extended/tests/bi_traits/ushort.cc             |   27 +++++++++++++++++++++++++
 extended/tests/bind.cc                         |   27 +++++++++++++++++++++++++
 extended/tests/cast.cc                         |   27 +++++++++++++++++++++++++
 extended/tests/cfun.cc                         |   26 ++++++++++++++++++++++++
 extended/tests/cos.cc                          |   27 +++++++++++++++++++++++++
 extended/tests/id.cc                           |   27 +++++++++++++++++++++++++
 extended/tests/lit.cc                          |   27 +++++++++++++++++++++++++
 extended/tests/math.cc                         |   27 +++++++++++++++++++++++++
 extended/tests/optraits.cc                     |   27 +++++++++++++++++++++++++
 extended/xtd/abstract/fun.hh                   |    4 +--
 extended/xtd/abstract/fun_expr.hh              |    4 +--
 extended/xtd/abstract/fun_nary_expr.hh         |    4 +--
 extended/xtd/abstract/meta_fun.hh              |    4 +--
 extended/xtd/abstract/meta_nary_fun.hh         |    4 +--
 extended/xtd/abstract/nary_fun.hh              |    4 +--
 extended/xtd/abstract/open_fun.hh              |    4 +--
 extended/xtd/abstract/open_nary_fun.hh         |    4 +--
 extended/xtd/abstract/plain_fun.hh             |    4 +--
 extended/xtd/abstract/plain_nary_fun.hh        |    4 +--
 extended/xtd/arg.hh                            |    4 +--
 extended/xtd/args.hh                           |    4 +--
 extended/xtd/bind.hh                           |    4 +--
 extended/xtd/builtin/traits.hh                 |    4 +--
 extended/xtd/cast.hh                           |    4 +--
 extended/xtd/cfun.hh                           |    4 +--
 extended/xtd/internal/mlc.hh                   |    4 +--
 extended/xtd/internal/opmacros.hh              |    4 +--
 extended/xtd/literal.hh                        |    4 +--
 extended/xtd/math.hh                           |    4 +--
 extended/xtd/math/abs.hh                       |    4 +--
 extended/xtd/math/acos.hh                      |    4 +--
 extended/xtd/math/arith.hh                     |    4 +--
 extended/xtd/math/asin.hh                      |    4 +--
 extended/xtd/math/atan.hh                      |    4 +--
 extended/xtd/math/atan2.hh                     |    4 +--
 extended/xtd/math/ceil.hh                      |    4 +--
 extended/xtd/math/cmp.hh                       |    4 +--
 extended/xtd/math/constraints.hh               |    4 +--
 extended/xtd/math/cos.hh                       |    4 +--
 extended/xtd/math/cosh.hh                      |    4 +--
 extended/xtd/math/exp.hh                       |    4 +--
 extended/xtd/math/floor.hh                     |    4 +--
 extended/xtd/math/id.hh                        |    4 +--
 extended/xtd/math/includes.hh                  |    4 +--
 extended/xtd/math/log.hh                       |    4 +--
 extended/xtd/math/log10.hh                     |    4 +--
 extended/xtd/math/logic.hh                     |    4 +--
 extended/xtd/math/pow.hh                       |    4 +--
 extended/xtd/math/sin.hh                       |    4 +--
 extended/xtd/math/sinh.hh                      |    4 +--
 extended/xtd/math/sqrt.hh                      |    4 +--
 extended/xtd/math/tan.hh                       |    4 +--
 extended/xtd/math/tanh.hh                      |    4 +--
 extended/xtd/mexpr.hh                          |    4 +--
 extended/xtd/mfun.hh                           |    4 +--
 extended/xtd/optraits.hh                       |    4 +--
 extended/xtd/res.hh                            |    4 +--
 extended/xtd/traits.hh                         |    4 +--
 metalic/mlc/abort.hh                           |    4 +--
 metalic/mlc/abstract/bexpr.hh                  |    4 +--
 metalic/mlc/abstract/type.hh                   |    4 +--
 metalic/mlc/assert.hh                          |    4 +--
 metalic/mlc/bexpr.hh                           |    4 +--
 metalic/mlc/bool.hh                            |    4 +--
 metalic/mlc/case.hh                            |    4 +--
 metalic/mlc/char.hh                            |    4 +--
 metalic/mlc/cmp.hh                             |    4 +--
 metalic/mlc/comma.hh                           |    4 +--
 metalic/mlc/contract.hh                        |    4 +--
 metalic/mlc/elt.hh                             |    4 +--
 metalic/mlc/flags.hh                           |    4 +--
 metalic/mlc/if.hh                              |    4 +--
 metalic/mlc/implies.hh                         |    4 +--
 metalic/mlc/int.hh                             |    4 +--
 metalic/mlc/is_a.hh                            |    4 +--
 metalic/mlc/logic.hh                           |    4 +--
 metalic/mlc/pair.hh                            |    4 +--
 metalic/mlc/ret.hh                             |    4 +--
 metalic/mlc/switch.hh                          |    4 +--
 metalic/mlc/to_string.hh                       |    4 +--
 metalic/mlc/typedef.hh                         |    4 +--
 metalic/mlc/uint.hh                            |    4 +--
 metalic/mlc/valist.hh                          |    4 +--
 metalic/mlc/value.hh                           |    4 +--
 metalic/mlc/values.hh                          |    4 +--
 metalic/mlc/wrap.hh                            |    4 +--
 metalic/tests/case.cc                          |   27 +++++++++++++++++++++++++
 metalic/tests/gcase.cc                         |   27 +++++++++++++++++++++++++
 metalic/tests/if.cc                            |   27 +++++++++++++++++++++++++
 metalic/tests/is_a.cc                          |   27 +++++++++++++++++++++++++
 metalic/tests/or.cc                            |   27 +++++++++++++++++++++++++
 metalic/tests/protected.cc                     |   27 +++++++++++++++++++++++++
 metalic/tests/ret.cc                           |   27 +++++++++++++++++++++++++
 metalic/tests/switch.cc                        |   27 +++++++++++++++++++++++++
 metalic/tests/typedef.cc                       |   27 +++++++++++++++++++++++++
 olena/oln/core/abstract/any.hh                 |    6 ++---
 olena/oln/core/abstract/image.hh               |    6 ++---
 olena/oln/core/abstract/image_dimension.hh     |    6 ++---
 olena/oln/core/abstract/image_entry.hh         |    6 ++---
 olena/oln/core/abstract/internal/image_impl.hh |    6 ++---
 olena/oln/core/abstract/macros.hh              |    6 ++---
 olena/oln/core/typedefs.hh                     |    6 ++---
 olena/tests/image_entry.cc                     |    6 ++---
 static/stc/any.hh                              |    4 +--
 static/stc/entry.hh                            |    4 +--
 static/stc/properties.hh                       |    4 +--
 static/tests/any.cc                            |   27 +++++++++++++++++++++++++
 static/tests/entry.cc                          |   27 +++++++++++++++++++++++++
 static/tests/properties.cc                     |   27 +++++++++++++++++++++++++
 122 files changed, 1101 insertions(+), 184 deletions(-)
Index: extended/xtd/res.hh
--- extended/xtd/res.hh	(revision 464)
+++ extended/xtd/res.hh	(working copy)
@@ -12,8 +12,8 @@
 //
 // 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, 59 Temple Place - Suite 330, Boston,
-// MA 02111-1307, USA.
+// 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
Index: extended/xtd/math.hh
--- extended/xtd/math.hh	(revision 464)
+++ extended/xtd/math.hh	(working copy)
@@ -12,8 +12,8 @@
 //
 // 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, 59 Temple Place - Suite 330, Boston,
-// MA 02111-1307, USA.
+// 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
Index: extended/xtd/cast.hh
--- extended/xtd/cast.hh	(revision 464)
+++ extended/xtd/cast.hh	(working copy)
@@ -12,8 +12,8 @@
 //
 // 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, 59 Temple Place - Suite 330, Boston,
-// MA 02111-1307, USA.
+// 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
Index: extended/xtd/cfun.hh
--- extended/xtd/cfun.hh	(revision 464)
+++ extended/xtd/cfun.hh	(working copy)
@@ -12,8 +12,8 @@
 //
 // 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, 59 Temple Place - Suite 330, Boston,
-// MA 02111-1307, USA.
+// 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
Index: extended/xtd/mexpr.hh
--- extended/xtd/mexpr.hh	(revision 464)
+++ extended/xtd/mexpr.hh	(working copy)
@@ -12,8 +12,8 @@
 //
 // 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, 59 Temple Place - Suite 330, Boston,
-// MA 02111-1307, USA.
+// 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
Index: extended/xtd/math/log.hh
--- extended/xtd/math/log.hh	(revision 464)
+++ extended/xtd/math/log.hh	(working copy)
@@ -12,8 +12,8 @@
 //
 // 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, 59 Temple Place - Suite 330, Boston,
-// MA 02111-1307, USA.
+// 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
Index: extended/xtd/math/floor.hh
--- extended/xtd/math/floor.hh	(revision 464)
+++ extended/xtd/math/floor.hh	(working copy)
@@ -12,8 +12,8 @@
 //
 // 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, 59 Temple Place - Suite 330, Boston,
-// MA 02111-1307, USA.
+// 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
Index: extended/xtd/math/tan.hh
--- extended/xtd/math/tan.hh	(revision 464)
+++ extended/xtd/math/tan.hh	(working copy)
@@ -12,8 +12,8 @@
 //
 // 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, 59 Temple Place - Suite 330, Boston,
-// MA 02111-1307, USA.
+// 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
Index: extended/xtd/math/log10.hh
--- extended/xtd/math/log10.hh	(revision 464)
+++ extended/xtd/math/log10.hh	(working copy)
@@ -12,8 +12,8 @@
 //
 // 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, 59 Temple Place - Suite 330, Boston,
-// MA 02111-1307, USA.
+// 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
Index: extended/xtd/math/atan.hh
--- extended/xtd/math/atan.hh	(revision 464)
+++ extended/xtd/math/atan.hh	(working copy)
@@ -12,8 +12,8 @@
 //
 // 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, 59 Temple Place - Suite 330, Boston,
-// MA 02111-1307, USA.
+// 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
Index: extended/xtd/math/cos.hh
--- extended/xtd/math/cos.hh	(revision 464)
+++ extended/xtd/math/cos.hh	(working copy)
@@ -12,8 +12,8 @@
 //
 // 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, 59 Temple Place - Suite 330, Boston,
-// MA 02111-1307, USA.
+// 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
Index: extended/xtd/math/acos.hh
--- extended/xtd/math/acos.hh	(revision 464)
+++ extended/xtd/math/acos.hh	(working copy)
@@ -12,8 +12,8 @@
 //
 // 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, 59 Temple Place - Suite 330, Boston,
-// MA 02111-1307, USA.
+// 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
Index: extended/xtd/math/sqrt.hh
--- extended/xtd/math/sqrt.hh	(revision 464)
+++ extended/xtd/math/sqrt.hh	(working copy)
@@ -12,8 +12,8 @@
 //
 // 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, 59 Temple Place - Suite 330, Boston,
-// MA 02111-1307, USA.
+// 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
Index: extended/xtd/math/sin.hh
--- extended/xtd/math/sin.hh	(revision 464)
+++ extended/xtd/math/sin.hh	(working copy)
@@ -12,8 +12,8 @@
 //
 // 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, 59 Temple Place - Suite 330, Boston,
-// MA 02111-1307, USA.
+// 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
Index: extended/xtd/math/tanh.hh
--- extended/xtd/math/tanh.hh	(revision 464)
+++ extended/xtd/math/tanh.hh	(working copy)
@@ -12,8 +12,8 @@
 //
 // 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, 59 Temple Place - Suite 330, Boston,
-// MA 02111-1307, USA.
+// 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
Index: extended/xtd/math/asin.hh
--- extended/xtd/math/asin.hh	(revision 464)
+++ extended/xtd/math/asin.hh	(working copy)
@@ -12,8 +12,8 @@
 //
 // 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, 59 Temple Place - Suite 330, Boston,
-// MA 02111-1307, USA.
+// 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
Index: extended/xtd/math/cosh.hh
--- extended/xtd/math/cosh.hh	(revision 464)
+++ extended/xtd/math/cosh.hh	(working copy)
@@ -12,8 +12,8 @@
 //
 // 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, 59 Temple Place - Suite 330, Boston,
-// MA 02111-1307, USA.
+// 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
Index: extended/xtd/math/id.hh
--- extended/xtd/math/id.hh	(revision 464)
+++ extended/xtd/math/id.hh	(working copy)
@@ -12,8 +12,8 @@
 //
 // 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, 59 Temple Place - Suite 330, Boston,
-// MA 02111-1307, USA.
+// 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
Index: extended/xtd/math/exp.hh
--- extended/xtd/math/exp.hh	(revision 464)
+++ extended/xtd/math/exp.hh	(working copy)
@@ -12,8 +12,8 @@
 //
 // 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, 59 Temple Place - Suite 330, Boston,
-// MA 02111-1307, USA.
+// 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
Index: extended/xtd/math/logic.hh
--- extended/xtd/math/logic.hh	(revision 464)
+++ extended/xtd/math/logic.hh	(working copy)
@@ -12,8 +12,8 @@
 //
 // 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, 59 Temple Place - Suite 330, Boston,
-// MA 02111-1307, USA.
+// 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
Index: extended/xtd/math/sinh.hh
--- extended/xtd/math/sinh.hh	(revision 464)
+++ extended/xtd/math/sinh.hh	(working copy)
@@ -12,8 +12,8 @@
 //
 // 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, 59 Temple Place - Suite 330, Boston,
-// MA 02111-1307, USA.
+// 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
Index: extended/xtd/math/abs.hh
--- extended/xtd/math/abs.hh	(revision 464)
+++ extended/xtd/math/abs.hh	(working copy)
@@ -12,8 +12,8 @@
 //
 // 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, 59 Temple Place - Suite 330, Boston,
-// MA 02111-1307, USA.
+// 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
Index: extended/xtd/math/pow.hh
--- extended/xtd/math/pow.hh	(revision 464)
+++ extended/xtd/math/pow.hh	(working copy)
@@ -12,8 +12,8 @@
 //
 // 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, 59 Temple Place - Suite 330, Boston,
-// MA 02111-1307, USA.
+// 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
Index: extended/xtd/math/atan2.hh
--- extended/xtd/math/atan2.hh	(revision 464)
+++ extended/xtd/math/atan2.hh	(working copy)
@@ -12,8 +12,8 @@
 //
 // 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, 59 Temple Place - Suite 330, Boston,
-// MA 02111-1307, USA.
+// 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
Index: extended/xtd/math/includes.hh
--- extended/xtd/math/includes.hh	(revision 464)
+++ extended/xtd/math/includes.hh	(working copy)
@@ -12,8 +12,8 @@
 //
 // 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, 59 Temple Place - Suite 330, Boston,
-// MA 02111-1307, USA.
+// 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
Index: extended/xtd/math/arith.hh
--- extended/xtd/math/arith.hh	(revision 464)
+++ extended/xtd/math/arith.hh	(working copy)
@@ -12,8 +12,8 @@
 //
 // 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, 59 Temple Place - Suite 330, Boston,
-// MA 02111-1307, USA.
+// 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
Index: extended/xtd/math/constraints.hh
--- extended/xtd/math/constraints.hh	(revision 464)
+++ extended/xtd/math/constraints.hh	(working copy)
@@ -12,8 +12,8 @@
 //
 // 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, 59 Temple Place - Suite 330, Boston,
-// MA 02111-1307, USA.
+// 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
Index: extended/xtd/math/ceil.hh
--- extended/xtd/math/ceil.hh	(revision 464)
+++ extended/xtd/math/ceil.hh	(working copy)
@@ -12,8 +12,8 @@
 //
 // 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, 59 Temple Place - Suite 330, Boston,
-// MA 02111-1307, USA.
+// 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
Index: extended/xtd/math/cmp.hh
--- extended/xtd/math/cmp.hh	(revision 464)
+++ extended/xtd/math/cmp.hh	(working copy)
@@ -12,8 +12,8 @@
 //
 // 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, 59 Temple Place - Suite 330, Boston,
-// MA 02111-1307, USA.
+// 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
Index: extended/xtd/literal.hh
--- extended/xtd/literal.hh	(revision 464)
+++ extended/xtd/literal.hh	(working copy)
@@ -12,8 +12,8 @@
 //
 // 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, 59 Temple Place - Suite 330, Boston,
-// MA 02111-1307, USA.
+// 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
Index: extended/xtd/args.hh
--- extended/xtd/args.hh	(revision 464)
+++ extended/xtd/args.hh	(working copy)
@@ -12,8 +12,8 @@
 //
 // 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, 59 Temple Place - Suite 330, Boston,
-// MA 02111-1307, USA.
+// 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
Index: extended/xtd/mfun.hh
--- extended/xtd/mfun.hh	(revision 464)
+++ extended/xtd/mfun.hh	(working copy)
@@ -12,8 +12,8 @@
 //
 // 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, 59 Temple Place - Suite 330, Boston,
-// MA 02111-1307, USA.
+// 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
Index: extended/xtd/abstract/nary_fun.hh
--- extended/xtd/abstract/nary_fun.hh	(revision 464)
+++ extended/xtd/abstract/nary_fun.hh	(working copy)
@@ -12,8 +12,8 @@
 //
 // 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, 59 Temple Place - Suite 330, Boston,
-// MA 02111-1307, USA.
+// 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
Index: extended/xtd/abstract/open_nary_fun.hh
--- extended/xtd/abstract/open_nary_fun.hh	(revision 464)
+++ extended/xtd/abstract/open_nary_fun.hh	(working copy)
@@ -12,8 +12,8 @@
 //
 // 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, 59 Temple Place - Suite 330, Boston,
-// MA 02111-1307, USA.
+// 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
Index: extended/xtd/abstract/plain_nary_fun.hh
--- extended/xtd/abstract/plain_nary_fun.hh	(revision 464)
+++ extended/xtd/abstract/plain_nary_fun.hh	(working copy)
@@ -12,8 +12,8 @@
 //
 // 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, 59 Temple Place - Suite 330, Boston,
-// MA 02111-1307, USA.
+// 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
Index: extended/xtd/abstract/fun_expr.hh
--- extended/xtd/abstract/fun_expr.hh	(revision 464)
+++ extended/xtd/abstract/fun_expr.hh	(working copy)
@@ -12,8 +12,8 @@
 //
 // 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, 59 Temple Place - Suite 330, Boston,
-// MA 02111-1307, USA.
+// 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
Index: extended/xtd/abstract/meta_nary_fun.hh
--- extended/xtd/abstract/meta_nary_fun.hh	(revision 464)
+++ extended/xtd/abstract/meta_nary_fun.hh	(working copy)
@@ -12,8 +12,8 @@
 //
 // 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, 59 Temple Place - Suite 330, Boston,
-// MA 02111-1307, USA.
+// 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
Index: extended/xtd/abstract/fun.hh
--- extended/xtd/abstract/fun.hh	(revision 464)
+++ extended/xtd/abstract/fun.hh	(working copy)
@@ -12,8 +12,8 @@
 //
 // 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, 59 Temple Place - Suite 330, Boston,
-// MA 02111-1307, USA.
+// 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
Index: extended/xtd/abstract/open_fun.hh
--- extended/xtd/abstract/open_fun.hh	(revision 464)
+++ extended/xtd/abstract/open_fun.hh	(working copy)
@@ -12,8 +12,8 @@
 //
 // 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, 59 Temple Place - Suite 330, Boston,
-// MA 02111-1307, USA.
+// 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
Index: extended/xtd/abstract/plain_fun.hh
--- extended/xtd/abstract/plain_fun.hh	(revision 464)
+++ extended/xtd/abstract/plain_fun.hh	(working copy)
@@ -12,8 +12,8 @@
 //
 // 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, 59 Temple Place - Suite 330, Boston,
-// MA 02111-1307, USA.
+// 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
Index: extended/xtd/abstract/meta_fun.hh
--- extended/xtd/abstract/meta_fun.hh	(revision 464)
+++ extended/xtd/abstract/meta_fun.hh	(working copy)
@@ -12,8 +12,8 @@
 //
 // 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, 59 Temple Place - Suite 330, Boston,
-// MA 02111-1307, USA.
+// 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
Index: extended/xtd/abstract/fun_nary_expr.hh
--- extended/xtd/abstract/fun_nary_expr.hh	(revision 464)
+++ extended/xtd/abstract/fun_nary_expr.hh	(working copy)
@@ -12,8 +12,8 @@
 //
 // 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, 59 Temple Place - Suite 330, Boston,
-// MA 02111-1307, USA.
+// 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
Index: extended/xtd/optraits.hh
--- extended/xtd/optraits.hh	(revision 464)
+++ extended/xtd/optraits.hh	(working copy)
@@ -12,8 +12,8 @@
 //
 // 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, 59 Temple Place - Suite 330, Boston,
-// MA 02111-1307, USA.
+// 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
Index: extended/xtd/traits.hh
--- extended/xtd/traits.hh	(revision 464)
+++ extended/xtd/traits.hh	(working copy)
@@ -12,8 +12,8 @@
 //
 // 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, 59 Temple Place - Suite 330, Boston,
-// MA 02111-1307, USA.
+// 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
Index: extended/xtd/builtin/traits.hh
--- extended/xtd/builtin/traits.hh	(revision 464)
+++ extended/xtd/builtin/traits.hh	(working copy)
@@ -12,8 +12,8 @@
 //
 // 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, 59 Temple Place - Suite 330, Boston,
-// MA 02111-1307, USA.
+// 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
Index: extended/xtd/arg.hh
--- extended/xtd/arg.hh	(revision 464)
+++ extended/xtd/arg.hh	(working copy)
@@ -12,8 +12,8 @@
 //
 // 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, 59 Temple Place - Suite 330, Boston,
-// MA 02111-1307, USA.
+// 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
Index: extended/xtd/bind.hh
--- extended/xtd/bind.hh	(revision 464)
+++ extended/xtd/bind.hh	(working copy)
@@ -12,8 +12,8 @@
 //
 // 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, 59 Temple Place - Suite 330, Boston,
-// MA 02111-1307, USA.
+// 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
Index: extended/xtd/internal/opmacros.hh
--- extended/xtd/internal/opmacros.hh	(revision 464)
+++ extended/xtd/internal/opmacros.hh	(working copy)
@@ -12,8 +12,8 @@
 //
 // 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, 59 Temple Place - Suite 330, Boston,
-// MA 02111-1307, USA.
+// 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
Index: extended/xtd/internal/mlc.hh
--- extended/xtd/internal/mlc.hh	(revision 464)
+++ extended/xtd/internal/mlc.hh	(working copy)
@@ -12,8 +12,8 @@
 //
 // 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, 59 Temple Place - Suite 330, Boston,
-// MA 02111-1307, USA.
+// 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
Index: extended/tests/cfun.cc
--- extended/tests/cfun.cc	(revision 464)
+++ extended/tests/cfun.cc	(working copy)
@@ -1,3 +1,29 @@
+// Copyright (C) 2006 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
+// 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.
 
 #include <iostream> 
 #include <xtd/cfun.hh>
Index: extended/tests/id.cc
--- extended/tests/id.cc	(revision 464)
+++ extended/tests/id.cc	(working copy)
@@ -1,3 +1,30 @@
+// Copyright (C) 2006 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
+// 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.
+
 #include <iostream>
 
 #include <xtd/math/id.hh>
Index: extended/tests/bind.cc
--- extended/tests/bind.cc	(revision 464)
+++ extended/tests/bind.cc	(working copy)
@@ -1,3 +1,30 @@
+// Copyright (C) 2006 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
+// 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.
+
 #include <iostream>
 
 #include <xtd/math.hh>
Index: extended/tests/bi_traits/bool.cc
--- extended/tests/bi_traits/bool.cc	(revision 464)
+++ extended/tests/bi_traits/bool.cc	(working copy)
@@ -1,3 +1,30 @@
+// Copyright (C) 2006 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
+// 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.
+
 #include <iostream>
 #include <typeinfo>
 
Index: extended/tests/bi_traits/char.cc
--- extended/tests/bi_traits/char.cc	(revision 464)
+++ extended/tests/bi_traits/char.cc	(working copy)
@@ -1,3 +1,30 @@
+// Copyright (C) 2006 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
+// 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.
+
 #include <iostream>
 #include <typeinfo>
 
Index: extended/tests/bi_traits/sint.cc
--- extended/tests/bi_traits/sint.cc	(revision 464)
+++ extended/tests/bi_traits/sint.cc	(working copy)
@@ -1,3 +1,30 @@
+// Copyright (C) 2006 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
+// 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.
+
 #include <iostream>
 #include <typeinfo>
 
Index: extended/tests/bi_traits/uint.cc
--- extended/tests/bi_traits/uint.cc	(revision 464)
+++ extended/tests/bi_traits/uint.cc	(working copy)
@@ -1,3 +1,30 @@
+// Copyright (C) 2006 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
+// 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.
+
 #include <iostream>
 #include <typeinfo>
 
Index: extended/tests/bi_traits/schar.cc
--- extended/tests/bi_traits/schar.cc	(revision 464)
+++ extended/tests/bi_traits/schar.cc	(working copy)
@@ -1,3 +1,30 @@
+// Copyright (C) 2006 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
+// 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.
+
 #include <iostream>
 #include <typeinfo>
 
Index: extended/tests/bi_traits/slong.cc
--- extended/tests/bi_traits/slong.cc	(revision 464)
+++ extended/tests/bi_traits/slong.cc	(working copy)
@@ -1,3 +1,30 @@
+// Copyright (C) 2006 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
+// 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.
+
 #include <iostream>
 #include <typeinfo>
 
Index: extended/tests/bi_traits/sshort.cc
--- extended/tests/bi_traits/sshort.cc	(revision 464)
+++ extended/tests/bi_traits/sshort.cc	(working copy)
@@ -1,3 +1,30 @@
+// Copyright (C) 2006 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
+// 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.
+
 #include <iostream>
 #include <typeinfo>
 
Index: extended/tests/bi_traits/uchar.cc
--- extended/tests/bi_traits/uchar.cc	(revision 464)
+++ extended/tests/bi_traits/uchar.cc	(working copy)
@@ -1,3 +1,30 @@
+// Copyright (C) 2006 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
+// 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.
+
 #include <iostream>
 #include <typeinfo>
 
Index: extended/tests/bi_traits/ushort.cc
--- extended/tests/bi_traits/ushort.cc	(revision 464)
+++ extended/tests/bi_traits/ushort.cc	(working copy)
@@ -1,3 +1,30 @@
+// Copyright (C) 2006 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
+// 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.
+
 #include <iostream>
 #include <typeinfo>
 
Index: extended/tests/bi_traits/ulong.cc
--- extended/tests/bi_traits/ulong.cc	(revision 464)
+++ extended/tests/bi_traits/ulong.cc	(working copy)
@@ -1,3 +1,30 @@
+// Copyright (C) 2006 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
+// 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.
+
 #include <iostream>
 #include <typeinfo>
 
Index: extended/tests/bi_traits/float.cc
--- extended/tests/bi_traits/float.cc	(revision 464)
+++ extended/tests/bi_traits/float.cc	(working copy)
@@ -1,3 +1,30 @@
+// Copyright (C) 2006 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
+// 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.
+
 #include <iostream>
 #include <typeinfo>
 
Index: extended/tests/bi_traits/ldouble.cc
--- extended/tests/bi_traits/ldouble.cc	(revision 464)
+++ extended/tests/bi_traits/ldouble.cc	(working copy)
@@ -1,3 +1,30 @@
+// Copyright (C) 2006 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
+// 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.
+
 #include <iostream>
 #include <typeinfo>
 
Index: extended/tests/bi_traits/double.cc
--- extended/tests/bi_traits/double.cc	(revision 464)
+++ extended/tests/bi_traits/double.cc	(working copy)
@@ -1,3 +1,30 @@
+// Copyright (C) 2006 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
+// 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.
+
 #include <iostream>
 #include <typeinfo>
 
Index: extended/tests/cos.cc
--- extended/tests/cos.cc	(revision 464)
+++ extended/tests/cos.cc	(working copy)
@@ -1,3 +1,30 @@
+// Copyright (C) 2006 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
+// 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.
+
 #include <iostream>
 
 #include <xtd/math/cos.hh>
Index: extended/tests/abs.cc
--- extended/tests/abs.cc	(revision 464)
+++ extended/tests/abs.cc	(working copy)
@@ -1,3 +1,30 @@
+// Copyright (C) 2006 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
+// 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.
+
 #include <iostream>
 #include <xtd/math/abs.hh>
 
Index: extended/tests/optraits.cc
--- extended/tests/optraits.cc	(revision 464)
+++ extended/tests/optraits.cc	(working copy)
@@ -1,3 +1,30 @@
+// Copyright (C) 2006 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
+// 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.
+
 #include <iostream>
 #include <xtd/optraits.hh>
 #include <xtd/math.hh>
Index: extended/tests/lit.cc
--- extended/tests/lit.cc	(revision 464)
+++ extended/tests/lit.cc	(working copy)
@@ -1,3 +1,30 @@
+// Copyright (C) 2006 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
+// 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.
+
 #include <iostream>
 
 #include <xtd/literal.hh>
Index: extended/tests/math.cc
--- extended/tests/math.cc	(revision 464)
+++ extended/tests/math.cc	(working copy)
@@ -1,3 +1,30 @@
+// Copyright (C) 2006 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
+// 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.
+
 #include <iostream>
 #include <xtd/math.hh>
 
Index: extended/tests/cast.cc
--- extended/tests/cast.cc	(revision 464)
+++ extended/tests/cast.cc	(working copy)
@@ -1,3 +1,30 @@
+// Copyright (C) 2006 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
+// 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.
+
 #include <iostream>
 #include <xtd/cast.hh>
 #include <xtd/arg.hh>
Index: static/tests/properties.cc
--- static/tests/properties.cc	(revision 464)
+++ static/tests/properties.cc	(working copy)
@@ -1,3 +1,30 @@
+// Copyright (C) 2006 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
+// 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.
+
 #include <stc/properties.hh>
 #include <mlc/cmp.hh>
 #include <mlc/assert.hh>
Index: static/tests/entry.cc
--- static/tests/entry.cc	(revision 464)
+++ static/tests/entry.cc	(working copy)
@@ -1,3 +1,30 @@
+// Copyright (C) 2006 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
+// 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.
+
 /// Test the extensible entry points in a class hierarchy.
 
 #include <stc/entry.hh>
Index: static/tests/any.cc
--- static/tests/any.cc	(revision 464)
+++ static/tests/any.cc	(working copy)
@@ -1,3 +1,30 @@
+// Copyright (C) 2006 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
+// 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.
+
 /// Test stc::any.
 
 #include <stc/any.hh>
Index: static/stc/entry.hh
--- static/stc/entry.hh	(revision 464)
+++ static/stc/entry.hh	(working copy)
@@ -12,8 +12,8 @@
 //
 // 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, 59 Temple Place - Suite 330, Boston,
-// MA 02111-1307, USA.
+// 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
Index: static/stc/any.hh
--- static/stc/any.hh	(revision 464)
+++ static/stc/any.hh	(working copy)
@@ -13,8 +13,8 @@
 //
 // 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, 59 Temple Place - Suite 330, Boston,
-// MA 02111-1307, USA.
+// 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
Index: static/stc/properties.hh
--- static/stc/properties.hh	(revision 464)
+++ static/stc/properties.hh	(working copy)
@@ -12,8 +12,8 @@
 //
 // 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, 59 Temple Place - Suite 330, Boston,
-// MA 02111-1307, USA.
+// 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
Index: metalic/tests/is_a.cc
--- metalic/tests/is_a.cc	(revision 464)
+++ metalic/tests/is_a.cc	(working copy)
@@ -1,3 +1,30 @@
+// Copyright (C) 2006 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
+// 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.
+
 #include <mlc/is_a.hh>
 #include <mlc/assert.hh>
 
Index: metalic/tests/case.cc
--- metalic/tests/case.cc	(revision 464)
+++ metalic/tests/case.cc	(working copy)
@@ -1,3 +1,30 @@
+// Copyright (C) 2006 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
+// 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.
+
 #include <mlc/is_a.hh>
 #include <mlc/case.hh>
 
Index: metalic/tests/if.cc
--- metalic/tests/if.cc	(revision 464)
+++ metalic/tests/if.cc	(working copy)
@@ -1,3 +1,30 @@
+// Copyright (C) 2006 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
+// 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.
+
 #include <mlc/if.hh>
 #include <mlc/cmp.hh>
 #include <mlc/assert.hh>
Index: metalic/tests/typedef.cc
--- metalic/tests/typedef.cc	(revision 464)
+++ metalic/tests/typedef.cc	(working copy)
@@ -1,3 +1,30 @@
+// Copyright (C) 2006 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
+// 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.
+
 #include <mlc/typedef.hh>
 #include <mlc/cmp.hh>
 #include <mlc/assert.hh>
Index: metalic/tests/or.cc
--- metalic/tests/or.cc	(revision 464)
+++ metalic/tests/or.cc	(working copy)
@@ -1,3 +1,30 @@
+// Copyright (C) 2006 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
+// 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.
+
 #include <mlc/cmp.hh>
 #include <mlc/logic.hh>
 #include <mlc/assert.hh>
Index: metalic/tests/switch.cc
--- metalic/tests/switch.cc	(revision 464)
+++ metalic/tests/switch.cc	(working copy)
@@ -1,3 +1,30 @@
+// Copyright (C) 2006 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
+// 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.
+
 #include <mlc/is_a.hh>
 #include <mlc/case.hh>
 
Index: metalic/tests/gcase.cc
--- metalic/tests/gcase.cc	(revision 464)
+++ metalic/tests/gcase.cc	(working copy)
@@ -1,3 +1,30 @@
+// Copyright (C) 2006 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
+// 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.
+
 #include <mlc/is_a.hh>
 #include <mlc/case.hh>
 
Index: metalic/tests/protected.cc
--- metalic/tests/protected.cc	(revision 464)
+++ metalic/tests/protected.cc	(working copy)
@@ -1,3 +1,30 @@
+// Copyright (C) 2006 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
+// 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.
+
 #include <mlc/switch.hh>
 #include <mlc/cmp.hh>
 #include <mlc/typedef.hh>
Index: metalic/tests/ret.cc
--- metalic/tests/ret.cc	(revision 464)
+++ metalic/tests/ret.cc	(working copy)
@@ -1,3 +1,30 @@
+// Copyright (C) 2006 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
+// 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.
+
 # include <cassert>
 # include <iostream>
 # include <mlc/ret.hh>
Index: metalic/mlc/elt.hh
--- metalic/mlc/elt.hh	(revision 464)
+++ metalic/mlc/elt.hh	(working copy)
@@ -12,8 +12,8 @@
 //
 // 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, 59 Temple Place - Suite 330, Boston,
-// MA 02111-1307, USA.
+// 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
Index: metalic/mlc/ret.hh
--- metalic/mlc/ret.hh	(revision 464)
+++ metalic/mlc/ret.hh	(working copy)
@@ -12,8 +12,8 @@
 //
 // 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, 59 Temple Place - Suite 330, Boston,
-// MA 02111-1307, USA.
+// 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
Index: metalic/mlc/int.hh
--- metalic/mlc/int.hh	(revision 464)
+++ metalic/mlc/int.hh	(working copy)
@@ -12,8 +12,8 @@
 //
 // 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, 59 Temple Place - Suite 330, Boston,
-// MA 02111-1307, USA.
+// 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
Index: metalic/mlc/pair.hh
--- metalic/mlc/pair.hh	(revision 464)
+++ metalic/mlc/pair.hh	(working copy)
@@ -12,8 +12,8 @@
 //
 // 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, 59 Temple Place - Suite 330, Boston,
-// MA 02111-1307, USA.
+// 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
Index: metalic/mlc/bool.hh
--- metalic/mlc/bool.hh	(revision 464)
+++ metalic/mlc/bool.hh	(working copy)
@@ -12,8 +12,8 @@
 //
 // 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, 59 Temple Place - Suite 330, Boston,
-// MA 02111-1307, USA.
+// 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
Index: metalic/mlc/flags.hh
--- metalic/mlc/flags.hh	(revision 464)
+++ metalic/mlc/flags.hh	(working copy)
@@ -12,8 +12,8 @@
 //
 // 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, 59 Temple Place - Suite 330, Boston,
-// MA 02111-1307, USA.
+// 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
Index: metalic/mlc/comma.hh
--- metalic/mlc/comma.hh	(revision 464)
+++ metalic/mlc/comma.hh	(working copy)
@@ -12,8 +12,8 @@
 //
 // 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, 59 Temple Place - Suite 330, Boston,
-// MA 02111-1307, USA.
+// 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
Index: metalic/mlc/logic.hh
--- metalic/mlc/logic.hh	(revision 464)
+++ metalic/mlc/logic.hh	(working copy)
@@ -12,8 +12,8 @@
 //
 // 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, 59 Temple Place - Suite 330, Boston,
-// MA 02111-1307, USA.
+// 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
Index: metalic/mlc/if.hh
--- metalic/mlc/if.hh	(revision 464)
+++ metalic/mlc/if.hh	(working copy)
@@ -12,8 +12,8 @@
 //
 // 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, 59 Temple Place - Suite 330, Boston,
-// MA 02111-1307, USA.
+// 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
Index: metalic/mlc/values.hh
--- metalic/mlc/values.hh	(revision 464)
+++ metalic/mlc/values.hh	(working copy)
@@ -12,8 +12,8 @@
 //
 // 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, 59 Temple Place - Suite 330, Boston,
-// MA 02111-1307, USA.
+// 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
Index: metalic/mlc/typedef.hh
--- metalic/mlc/typedef.hh	(revision 464)
+++ metalic/mlc/typedef.hh	(working copy)
@@ -12,8 +12,8 @@
 //
 // 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, 59 Temple Place - Suite 330, Boston,
-// MA 02111-1307, USA.
+// 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
Index: metalic/mlc/assert.hh
--- metalic/mlc/assert.hh	(revision 464)
+++ metalic/mlc/assert.hh	(working copy)
@@ -12,8 +12,8 @@
 //
 // 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, 59 Temple Place - Suite 330, Boston,
-// MA 02111-1307, USA.
+// 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
Index: metalic/mlc/switch.hh
--- metalic/mlc/switch.hh	(revision 464)
+++ metalic/mlc/switch.hh	(working copy)
@@ -12,8 +12,8 @@
 //
 // 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, 59 Temple Place - Suite 330, Boston,
-// MA 02111-1307, USA.
+// 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
Index: metalic/mlc/valist.hh
--- metalic/mlc/valist.hh	(revision 464)
+++ metalic/mlc/valist.hh	(working copy)
@@ -12,8 +12,8 @@
 //
 // 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, 59 Temple Place - Suite 330, Boston,
-// MA 02111-1307, USA.
+// 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
Index: metalic/mlc/implies.hh
--- metalic/mlc/implies.hh	(revision 464)
+++ metalic/mlc/implies.hh	(working copy)
@@ -12,8 +12,8 @@
 //
 // 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, 59 Temple Place - Suite 330, Boston,
-// MA 02111-1307, USA.
+// 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
Index: metalic/mlc/abstract/type.hh
--- metalic/mlc/abstract/type.hh	(revision 464)
+++ metalic/mlc/abstract/type.hh	(working copy)
@@ -12,8 +12,8 @@
 //
 // 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, 59 Temple Place - Suite 330, Boston,
-// MA 02111-1307, USA.
+// 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
Index: metalic/mlc/abstract/bexpr.hh
--- metalic/mlc/abstract/bexpr.hh	(revision 464)
+++ metalic/mlc/abstract/bexpr.hh	(working copy)
@@ -12,8 +12,8 @@
 //
 // 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, 59 Temple Place - Suite 330, Boston,
-// MA 02111-1307, USA.
+// 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
Index: metalic/mlc/abort.hh
--- metalic/mlc/abort.hh	(revision 464)
+++ metalic/mlc/abort.hh	(working copy)
@@ -12,8 +12,8 @@
 //
 // 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, 59 Temple Place - Suite 330, Boston,
-// MA 02111-1307, USA.
+// 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
Index: metalic/mlc/to_string.hh
--- metalic/mlc/to_string.hh	(revision 464)
+++ metalic/mlc/to_string.hh	(working copy)
@@ -12,8 +12,8 @@
 //
 // 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, 59 Temple Place - Suite 330, Boston,
-// MA 02111-1307, USA.
+// 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
Index: metalic/mlc/wrap.hh
--- metalic/mlc/wrap.hh	(revision 464)
+++ metalic/mlc/wrap.hh	(working copy)
@@ -12,8 +12,8 @@
 //
 // 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, 59 Temple Place - Suite 330, Boston,
-// MA 02111-1307, USA.
+// 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
Index: metalic/mlc/is_a.hh
--- metalic/mlc/is_a.hh	(revision 464)
+++ metalic/mlc/is_a.hh	(working copy)
@@ -12,8 +12,8 @@
 //
 // 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, 59 Temple Place - Suite 330, Boston,
-// MA 02111-1307, USA.
+// 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
Index: metalic/mlc/case.hh
--- metalic/mlc/case.hh	(revision 464)
+++ metalic/mlc/case.hh	(working copy)
@@ -12,8 +12,8 @@
 //
 // 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, 59 Temple Place - Suite 330, Boston,
-// MA 02111-1307, USA.
+// 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
Index: metalic/mlc/value.hh
--- metalic/mlc/value.hh	(revision 464)
+++ metalic/mlc/value.hh	(working copy)
@@ -12,8 +12,8 @@
 //
 // 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, 59 Temple Place - Suite 330, Boston,
-// MA 02111-1307, USA.
+// 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
Index: metalic/mlc/char.hh
--- metalic/mlc/char.hh	(revision 464)
+++ metalic/mlc/char.hh	(working copy)
@@ -12,8 +12,8 @@
 //
 // 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, 59 Temple Place - Suite 330, Boston,
-// MA 02111-1307, USA.
+// 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
Index: metalic/mlc/contract.hh
--- metalic/mlc/contract.hh	(revision 464)
+++ metalic/mlc/contract.hh	(working copy)
@@ -13,8 +13,8 @@
 //
 // 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, 59 Temple Place - Suite 330, Boston,
-// MA 02111-1307, USA.
+// 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
Index: metalic/mlc/uint.hh
--- metalic/mlc/uint.hh	(revision 464)
+++ metalic/mlc/uint.hh	(working copy)
@@ -12,8 +12,8 @@
 //
 // 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, 59 Temple Place - Suite 330, Boston,
-// MA 02111-1307, USA.
+// 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
Index: metalic/mlc/cmp.hh
--- metalic/mlc/cmp.hh	(revision 464)
+++ metalic/mlc/cmp.hh	(working copy)
@@ -12,8 +12,8 @@
 //
 // 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, 59 Temple Place - Suite 330, Boston,
-// MA 02111-1307, USA.
+// 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
Index: metalic/mlc/bexpr.hh
--- metalic/mlc/bexpr.hh	(revision 464)
+++ metalic/mlc/bexpr.hh	(working copy)
@@ -12,8 +12,8 @@
 //
 // 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, 59 Temple Place - Suite 330, Boston,
-// MA 02111-1307, USA.
+// 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
Index: olena/tests/image_entry.cc
--- olena/tests/image_entry.cc	(revision 464)
+++ olena/tests/image_entry.cc	(working copy)
@@ -11,9 +11,9 @@
 // General Public License for more details.
 //
 // You should have received a copy of the GNU General Public License
-// along with this program; if not, write to the Free Software
-// Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA
-// 02110-1301 USA
+// 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
Index: olena/oln/core/typedefs.hh
--- olena/oln/core/typedefs.hh	(revision 464)
+++ olena/oln/core/typedefs.hh	(working copy)
@@ -11,9 +11,9 @@
 // General Public License for more details.
 //
 // You should have received a copy of the GNU General Public License
-// along with this program; if not, write to the Free Software
-// Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA
-// 02110-1301 USA
+// 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
Index: olena/oln/core/abstract/image.hh
--- olena/oln/core/abstract/image.hh	(revision 464)
+++ olena/oln/core/abstract/image.hh	(working copy)
@@ -12,9 +12,9 @@
 // General Public License for more details.
 //
 // You should have received a copy of the GNU General Public License
-// along with this program; if not, write to the Free Software
-// Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA
-// 02110-1301 USA
+// 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
Index: olena/oln/core/abstract/image_entry.hh
--- olena/oln/core/abstract/image_entry.hh	(revision 464)
+++ olena/oln/core/abstract/image_entry.hh	(working copy)
@@ -11,9 +11,9 @@
 // General Public License for more details.
 //
 // You should have received a copy of the GNU General Public License
-// along with this program; if not, write to the Free Software
-// Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA
-// 02110-1301 USA
+// 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
Index: olena/oln/core/abstract/macros.hh
--- olena/oln/core/abstract/macros.hh	(revision 464)
+++ olena/oln/core/abstract/macros.hh	(working copy)
@@ -11,9 +11,9 @@
 // General Public License for more details.
 //
 // You should have received a copy of the GNU General Public License
-// along with this program; if not, write to the Free Software
-// Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA
-// 02110-1301 USA
+// 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
Index: olena/oln/core/abstract/image_dimension.hh
--- olena/oln/core/abstract/image_dimension.hh	(revision 464)
+++ olena/oln/core/abstract/image_dimension.hh	(working copy)
@@ -11,9 +11,9 @@
 // General Public License for more details.
 //
 // You should have received a copy of the GNU General Public License
-// along with this program; if not, write to the Free Software
-// Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA
-// 02110-1301 USA
+// 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
Index: olena/oln/core/abstract/any.hh
--- olena/oln/core/abstract/any.hh	(revision 464)
+++ olena/oln/core/abstract/any.hh	(working copy)
@@ -12,9 +12,9 @@
 // General Public License for more details.
 //
 // You should have received a copy of the GNU General Public License
-// along with this program; if not, write to the Free Software
-// Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA
-// 02110-1301 USA
+// 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
Index: olena/oln/core/abstract/internal/image_impl.hh
--- olena/oln/core/abstract/internal/image_impl.hh	(revision 464)
+++ olena/oln/core/abstract/internal/image_impl.hh	(working copy)
@@ -11,9 +11,9 @@
 // General Public License for more details.
 //
 // You should have received a copy of the GNU General Public License
-// along with this program; if not, write to the Free Software
-// Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA
-// 02110-1301 USA
+// 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
                    
                  
                  
                          
                            
                            1
                            
                          
                          
                            
                            0
                            
                          
                          
                            
    
                          
                        
                    
                    
                        https://svn.lrde.epita.fr/svn/oln/trunk
Index: ChangeLog
from  Roland Levillain  <roland(a)lrde.epita.fr>
	Move mlc::any to stc::.
	* metalic/mlc/any.hh: Move file...
	* static/stc/any.hh: ...here.
	Adjust.
	* olena/oln/core/abstract/any.hh: Adjust client.
	* metalic/tests/any.cc: Move test...
	* static/tests/any.cc: ...here.
	Adjust test.
	* metalic/mlc/Makefile.am (nobase_mlc_HEADERS): Move any.cc...
	* static/stc/Makefile.am (nobase_stc_HEADERS): ...here.
	* metalic/tests/Makefile.am (check_PROGRAMS): Move any
	* static/tests/Makefile.am (check_PROGRAMS): ...here
	* metalic/tests/Makefile.am (any_SOURCES): Move variable...
	* static/tests/Makefile.am (any_SOURCES): ...here
 metalic/mlc/Makefile.am        |    1 -
 metalic/tests/Makefile.am      |    2 --
 olena/oln/core/abstract/any.hh |   10 +++++-----
 static/stc/Makefile.am         |    1 +
 static/stc/any.hh              |   23 +++++++++++------------
 static/tests/Makefile.am       |    2 ++
 static/tests/any.cc            |   18 +++++++++---------
 7 files changed, 28 insertions(+), 29 deletions(-)
Index: static/tests/Makefile.am
--- static/tests/Makefile.am	(revision 463)
+++ static/tests/Makefile.am	(working copy)
@@ -8,9 +8,11 @@
 # when oln.m4 is available in the distribution.
 
 check_PROGRAMS =				\
+  any						\
   entry						\
   properties
 
+any_SOURCES       = any.cc
 properties_SOURCES = properties.cc
 entry_SOURCES = entry.cc
 
Index: static/tests/any.cc
--- static/tests/any.cc	(revision 463)
+++ static/tests/any.cc	(working copy)
@@ -1,18 +1,18 @@
-/// Test mlc::any.
+/// Test stc::any.
 
-#include <mlc/any.hh>
+#include <stc/any.hh>
 #include <mlc/cmp.hh>
 #include <mlc/assert.hh>
 #include <mlc/logic.hh>
 #include <mlc/is_a.hh>
 
-// FIXME: Test other flavors of mlc::any.
+// FIXME: Test other flavors of stc::any.
 
 /* Linear hierachy.
 
    - Abstractions.
 
-                           mlc::any<Exact>
+                           stc::any<Exact>
                                   ^
                                   |
                                A<Exact>
@@ -26,7 +26,7 @@
 
    -  Concrete class C, deriving from B.
 
-                             mlc::any<C>
+                             stc::any<C>
                                   ^
                                   |
                                  A<C>
@@ -40,7 +40,7 @@
 */
 
 template <typename Exact>
-struct A : public mlc::any__simple< Exact > {};
+struct A : public stc::any__simple< Exact > {};
 
 template <typename Exact>
 struct B : public A< Exact > {};
@@ -52,7 +52,7 @@
 
    - Abstractions.
 
-                           mlc::any<Exact>
+                           stc::any<Exact>
                                   ^
                                   |
                                T<Exact>
@@ -67,7 +67,7 @@
    - Concrete classes V and Z, deriving from U and from X and Y resp.
 
 
-                 mlc::any<Z>          mlc::any<Z>
+                 stc::any<Z>          stc::any<Z>
                      ^                    ^
                      |                    |
                     T<Z>                 T<Z>
@@ -81,7 +81,7 @@
 */
 
 template <typename Exact>
-struct T : public mlc::any__simple< Exact > {};
+struct T : public stc::any__simple< Exact > {};
 
 template <typename Exact>
 struct U : public T< Exact > {};
Index: static/stc/any.hh
--- static/stc/any.hh	(revision 463)
+++ static/stc/any.hh	(working copy)
@@ -27,11 +27,11 @@
 // Public License.
 
 
-#ifndef METALIC_ANY_HH
-# define METALIC_ANY_HH
+#ifndef STATIC_ANY_HH
+# define STATIC_ANY_HH
 
-/// \file mlc/any.hh
-/// \brief Implementation of mlc::any classes (top of static hierachies).
+/// \file stc/any.hh
+/// \brief Implementation of stc::any classes (top of static hierachies).
 
 
 # include <mlc/contract.hh>
@@ -41,10 +41,10 @@
 #define any_mem(E) any<E, dispatch_policy::best_memory>
 
 
-namespace mlc
+namespace stc
 {
 
-  /// Tags selecting a dispatch for mlc::any.
+  /// Tags selecting a dispatch for stc::any.
   struct dispatch_policy
   {
     struct best_speed;
@@ -59,7 +59,7 @@
 
 
   /*-----------------------.
-  | mlc::any__best_speed.  |
+  | stc::any__best_speed.  |
   `-----------------------*/
 
   /// "Best speed" version of `any'.
@@ -112,7 +112,7 @@
 
 
   /*------------------------.
-  | mlc::any__best_memory.  |
+  | stc::any__best_memory.  |
   `------------------------*/
 
   /// "Best memory" version of 'any'
@@ -177,7 +177,7 @@
 
 
   /*-------------------.
-  | mlc::any__simple.  |
+  | stc::any__simple.  |
   `-------------------*/
 
   /// "Simple" version of `any'.
@@ -205,8 +205,7 @@
     any__simple() : super() {}
   };
 
+} // end of namespace stc
 
-} // end of namespace mlc
 
-
-#endif // ! METALIC_ANY_HH
+#endif // ! STATIC_ANY_HH
Index: static/stc/Makefile.am
--- static/stc/Makefile.am	(revision 463)
+++ static/stc/Makefile.am	(working copy)
@@ -2,5 +2,6 @@
 
 stcdir = $(includedir)/stc
 nobase_stc_HEADERS =				\
+  any.hh					\
   entry.hh					\
   properties.hh
Index: metalic/tests/Makefile.am
--- metalic/tests/Makefile.am	(revision 463)
+++ metalic/tests/Makefile.am	(working copy)
@@ -8,7 +8,6 @@
 # when oln.m4 is available in the distribution.
 
 check_PROGRAMS =				\
-  any						\
   case						\
   if						\
   is_a						\
@@ -18,7 +17,6 @@
   switch					\
   typedef
 
-any_SOURCES       = any.cc
 case_SOURCES      = case.cc
 if_SOURCES        = if.cc
 is_a_SOURCES      = is_a.cc
Index: metalic/mlc/Makefile.am
--- metalic/mlc/Makefile.am	(revision 463)
+++ metalic/mlc/Makefile.am	(working copy)
@@ -3,7 +3,6 @@
 mlcdir = $(includedir)/mlc
 nobase_mlc_HEADERS =				\
   abort.hh 					\
-  any.hh					\
   assert.hh					\
   bexpr.hh					\
   bool.hh					\
Index: olena/oln/core/abstract/any.hh
--- olena/oln/core/abstract/any.hh	(revision 463)
+++ olena/oln/core/abstract/any.hh	(working copy)
@@ -29,7 +29,7 @@
 #ifndef OLENA_CORE_ABSTRACT_ANY_HH
 # define OLENA_CORE_ABSTRACT_ANY_HH
 
-# include <mlc/any.hh>
+# include <stc/any.hh>
 # include <mlc/bool.hh>
 # include <mlc/is_a.hh>
 
@@ -40,10 +40,10 @@
 
 
     template <typename E>
-    struct any : public mlc::any<E, mlc::dispatch_policy::simple>
+    struct any : public stc::any<E, stc::dispatch_policy::simple>
     {
     protected:
-      typedef mlc::any<E, mlc::dispatch_policy::simple> super;
+      typedef stc::any<E, stc::dispatch_policy::simple> super;
       any(E* exact_ptr) : super(exact_ptr) {}
       any() {}
     };
@@ -51,10 +51,10 @@
 
     template <typename E>
     struct any_best_speed :
-      public mlc::any<E, mlc::dispatch_policy::best_speed>
+      public stc::any<E, stc::dispatch_policy::best_speed>
     {
     protected:
-      typedef mlc::any<E, mlc::dispatch_policy::best_speed> super;
+      typedef stc::any<E, stc::dispatch_policy::best_speed> super;
       any_best_speed(E* exact_ptr = 0) : super(exact_ptr) {}
     };
 
                    
                  
                  
                          
                            
                            1
                            
                          
                          
                            
                            0
                            
                          
                          
                            
    
                          
                        
                    21 Apr '06
                    
                        https://svn.lrde.epita.fr/svn/oln/trunk
Index: ChangeLog
from  Roland Levillain  <roland(a)lrde.epita.fr>
	* configure.ac: Configure olena/oln/Makefile and
	olena/tests/Makefile.
 configure.ac |    2 ++
 1 file changed, 2 insertions(+)
Index: configure.ac
--- configure.ac	(revision 462)
+++ configure.ac	(working copy)
@@ -43,6 +43,7 @@
   metalic/tests/Makefile
   extended/tests/Makefile
   static/tests/Makefile
+  olena/tests/Makefile
 ])
 
 
@@ -63,6 +64,7 @@
     static/Makefile
       static/stc/Makefile
     olena/Makefile
+      olena/oln/Makefile
 ])
 
 # Checks for library functions.
                    
                  
                  
                          
                            
                            1
                            
                          
                          
                            
                            0
                            
                          
                          
                            
    
                          
                        
                    
                    
                        https://svn.lrde.epita.fr/svn/oln/trunk/olena
There is a lot of commented code in these newly imported files; this
is on purpose, since disabled features are to be re-enabled as one goes
along; this way, we'll let current code pass the tests.
I only checked in a single abstraction hierarchy (image dimension) into
the project; feel free to take part to the population of
olena::abstract!  You can have a look at Christophe's work on Olena's
Trac Wiki :
  http://olena.lrde.org/trac.cgi/wiki/ImageTaxonomy
The best way to re-import existing code (presumably from the
prototypes/proto-1.0 source tree) is to use `svn copy', e.g.:
  svn copy https://svn.lrde.epita.fr/svn/oln/prototypes/proto-1.0/myfile \
    path-to-my-working-copy/my-file
This way, the history of the file is preserved.
P.S.: A lot of copyright headers of Olena use the old postal address
of the FSF.  Of course, we'll run an update script later, but I think
we should take the good habit of using their new address in every
newly added file.
Index: ChangeLog
from  Roland Levillain  <roland(a)lrde.epita.fr>
	Lay the foundation stone of abstract::image.
	* oln/core/abstract/any.hh, oln/core/typedefs.hh,
	* oln/core/abstract/image.hh,
	* oln/core/abstract/internal/image_impl.hh
	* oln/core/abstract/image_entry.hh
	* oln/core/abstract/image_dimension.hh: New files (imported from
	Olena proto-1.0, and modified).
	* oln/core/abstract/macros.hh: New file.
	* tests/image_entry.cc: New test.
	* Makefile.am, oln/Makefile.am, tests/Makefile.am: New files.
 Makefile.am                              |    3 
 oln/Makefile.am                          |   13 
 oln/core/abstract/any.hh                 |   19 -
 oln/core/abstract/image.hh               |  571 +++++++++++++++++--------------
 oln/core/abstract/image_dimension.hh     |   22 -
 oln/core/abstract/image_entry.hh         |   66 +--
 oln/core/abstract/internal/image_impl.hh |   95 ++++-
 oln/core/abstract/macros.hh              |   46 ++
 oln/core/typedefs.hh                     |  178 +++++----
 tests/Makefile.am                        |   17 
 tests/image_entry.cc                     |   73 +++
 11 files changed, 716 insertions(+), 387 deletions(-)
Index: tests/image_entry.cc
--- tests/image_entry.cc	(revision 0)
+++ tests/image_entry.cc	(revision 0)
@@ -0,0 +1,73 @@
+// Copyright (C) 2006 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
+// 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 program; if not, write to the Free Software
+// Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA
+// 02110-1301 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.
+
+/// Test oln::abstract::image_entry.
+
+#include <oln/core/abstract/image_entry.hh>
+#include <oln/core/abstract/image_dimension.hh>
+
+namespace my
+{
+  // Fwd decl.
+  class image;
+}
+
+namespace oln
+{
+  // Warning, this sugar might be removed in the future.
+  stc_set_super(my::image, abstract::image_entry<my::image>);
+
+  /// Virtual types associated to my::A.
+  template<>
+  struct vtypes<category::image, my::image>
+  {
+    // FIXME: Don't use the abstraction as a property, but the
+    // corresponding grid instead.  The switch for image_dimension
+    // (above image_entry) should plug the inheritance relationship to
+    // the right image_dimension class using the sole grid information
+    // (the grid can be seen here as a ``tag'').
+    typedef stc::is_a<abstract::image1d> image_dimension_type;
+  };
+}
+
+namespace my
+{
+  // A very simple 1D image.
+  class image : public oln::set_super_type<image>::ret
+  {
+    typedef image self_type;
+    typedef oln_type_of_(self_type, image_dimension) image_dimension_type;
+  };
+}
+
+int
+main()
+{
+  // Instantiate it, and check its dimension.
+  my::image i;
+  mlc::assert_< mlc_is_a_(my::image::image, oln::abstract::image1d) >::check();
+}
Index: tests/Makefile.am
--- tests/Makefile.am	(revision 0)
+++ tests/Makefile.am	(revision 0)
@@ -0,0 +1,17 @@
+## Process this file through Automake to create Makefile.in -*- Makefile -*-
+
+AM_CPPFLAGS =					\
+  -I$(top_srcdir)/olena -I$(top_srcdir)/static	\
+  -I$(top_srcdir)/metalic
+# FIXME: Add
+#
+#   AM_CXXFLAGS = $(CXXFLAGS_STRICT) $(CXXFLAGS_OPTIMIZE) -ggdb
+#
+# when oln.m4 is available in the distribution.
+
+check_PROGRAMS =				\
+  image_entry
+
+image_entry_SOURCES = image_entry.cc
+
+TESTS = $(check_PROGRAMS)
Index: oln/core/typedefs.hh
--- oln/core/typedefs.hh	(revision 0)
+++ oln/core/typedefs.hh	(working copy)
@@ -1,4 +1,4 @@
-// Copyright (C) 2005 EPITA Research and Development Laboratory
+// Copyright (C) 2005, 2006 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
@@ -11,9 +11,9 @@
 // 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, 59 Temple Place - Suite 330, Boston,
-// MA 02111-1307, USA.
+// along with this program; if not, write to the Free Software
+// Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA
+// 02110-1301 USA
 //
 // As a special exception, you may use this file as part of a free
 // software library without restriction.  Specifically, if other files
@@ -31,11 +31,10 @@
 # include <iostream>
 
 # include <mlc/contract.hh>
-# include <mlc/types.hh>
+# include <mlc/flags.hh>
 # include <mlc/cmp.hh>
 # include <mlc/typedef.hh>
-# include <mlc/properties.hh>
-# include <mlc/to_string.hh>
+# include <stc/properties.hh>
 
 
 # define oln_super_of_(Type) \
@@ -56,79 +55,114 @@
 namespace oln
 {
 
+  // Namespace equipment.
+  stc_equip_namespace_with_properties();
 
-  mlc_equip_namespace_with_properties();
+  // Misc.
 
-
-  // misc
-
-  mlc_decl_typedef(exact_type);
-
-  // general
-
-  mlc_decl_typedef(grid_type);
-
-  // iterators
-
-  mlc_decl_typedef(iter_type);
-  mlc_decl_typedef(fwd_iter_type);
-  mlc_decl_typedef(bkd_iter_type);
-
-  mlc_decl_typedef(piter_type);
-  mlc_decl_typedef(fwd_piter_type);
-  mlc_decl_typedef(bkd_piter_type);
-
-  mlc_decl_typedef(qiter_type);
-  mlc_decl_typedef(fwd_qiter_type);
-  mlc_decl_typedef(bkd_qiter_type);
-
-  mlc_decl_typedef(niter_type);
-  mlc_decl_typedef(fwd_niter_type);
-  mlc_decl_typedef(bkd_niter_type);
-
-  // category::image
-
-  mlc_decl_typedef(data_type);
-  mlc_decl_typedef(value_type);
-  mlc_decl_typedef(neighb_type);
-  mlc_decl_typedef(value_storage_type);
-  mlc_decl_typedef(storage_type);
-  mlc_decl_typedef(point_type);
-  mlc_decl_typedef(dpoint_type);
-  mlc_decl_typedef(image_type);
-  mlc_decl_typedef(concrete_type);
+// --------------------------------------------------------------------
+// FIXME: To be enabled later.
+// --------------------------------------------------------------------
+//   mlc_decl_typedef(exact_type);
+// --------------------------------------------------------------------
+
+  // General.
+
+// --------------------------------------------------------------------
+// FIXME: To be enabled later.
+// --------------------------------------------------------------------
+//   mlc_decl_typedef(grid_type);
+// --------------------------------------------------------------------
+
+  // Iterators.
+
+// --------------------------------------------------------------------
+// FIXME: To be enabled later.
+// --------------------------------------------------------------------
+//   mlc_decl_typedef(iter_type);
+//   mlc_decl_typedef(fwd_iter_type);
+//   mlc_decl_typedef(bkd_iter_type);
+
+//   mlc_decl_typedef(piter_type);
+//   mlc_decl_typedef(fwd_piter_type);
+//   mlc_decl_typedef(bkd_piter_type);
+
+//   mlc_decl_typedef(qiter_type);
+//   mlc_decl_typedef(fwd_qiter_type);
+//   mlc_decl_typedef(bkd_qiter_type);
+
+//   mlc_decl_typedef(niter_type);
+//   mlc_decl_typedef(fwd_niter_type);
+//   mlc_decl_typedef(bkd_niter_type);
+// --------------------------------------------------------------------
+
+  // category::image.
+
+// --------------------------------------------------------------------
+// FIXME: To be enabled later.
+// --------------------------------------------------------------------
+//   mlc_decl_typedef(data_type);
+//   mlc_decl_typedef(value_type);
+//   mlc_decl_typedef(neighb_type);
+//   mlc_decl_typedef(value_storage_type);
+//   mlc_decl_typedef(storage_type);
+//   mlc_decl_typedef(point_type);
+//   mlc_decl_typedef(dpoint_type);
+//   mlc_decl_typedef(image_type);
+//   mlc_decl_typedef(concrete_type);
+// --------------------------------------------------------------------
 
   mlc_decl_typedef(delegated_type);
-  mlc_decl_typedef(size_type);
-  mlc_decl_typedef(window_type);
-
-  mlc_decl_typedef(image_neighbness_type);
-  mlc_decl_typedef(image_constness_type);
+// --------------------------------------------------------------------
+// FIXME: To be enabled later.
+// --------------------------------------------------------------------
+//   mlc_decl_typedef(size_type);
+//   mlc_decl_typedef(window_type);
+
+//   mlc_decl_typedef(image_neighbness_type);
+//   mlc_decl_typedef(image_constness_type);
+// --------------------------------------------------------------------
   mlc_decl_typedef(image_dimension_type);
-  mlc_decl_typedef(image_typeness_type);
-  mlc_decl_typedef(image_valuedness_type);
-  mlc_decl_typedef(image_rawness_type);
-
-  // extension in image_operators
-  mlc_decl_typedef(output_type);
-  mlc_decl_typedef(input_type);
-  mlc_decl_typedef(input1_type);
-  mlc_decl_typedef(input2_type);
-
-
-
-  // category::grid
-
-  mlc_decl_typedef(dimvalue_type);
-  mlc_decl_typedef(coord_type);
+// --------------------------------------------------------------------
+// FIXME: To be enabled later.
+// --------------------------------------------------------------------
+//   mlc_decl_typedef(image_typeness_type);
+//   mlc_decl_typedef(image_valuedness_type);
+//   mlc_decl_typedef(image_rawness_type);
+// --------------------------------------------------------------------
+
+  // Extension in image_operators.
+// --------------------------------------------------------------------
+// FIXME: To be enabled later.
+// --------------------------------------------------------------------
+//   mlc_decl_typedef(output_type);
+//   mlc_decl_typedef(input_type);
+//   mlc_decl_typedef(input1_type);
+//   mlc_decl_typedef(input2_type);
+// --------------------------------------------------------------------
 
 
-  // category::fun1 and 2
 
-  mlc_decl_typedef(res_type);
-  mlc_decl_typedef(arg_type);
-  mlc_decl_typedef(left_type);
-  mlc_decl_typedef(right_type);
+  // category::grid.
+
+// --------------------------------------------------------------------
+// FIXME: To be enabled later.
+// --------------------------------------------------------------------
+//   mlc_decl_typedef(dimvalue_type);
+//   mlc_decl_typedef(coord_type);
+// --------------------------------------------------------------------
+
+
+  // category::fun1 and category::fun2.
+
+// --------------------------------------------------------------------
+// FIXME: To be enabled later.
+// --------------------------------------------------------------------
+//   mlc_decl_typedef(res_type);
+//   mlc_decl_typedef(arg_type);
+//   mlc_decl_typedef(left_type);
+//   mlc_decl_typedef(right_type);
+// --------------------------------------------------------------------
 
 
 } // end of namespace oln
Index: oln/core/abstract/image.hh
--- oln/core/abstract/image.hh	(revision 0)
+++ oln/core/abstract/image.hh	(working copy)
@@ -1,4 +1,5 @@
-// Copyright (C) 2001, 2003, 2004, 2005 EPITA Research and Development Laboratory
+// Copyright (C) 2001, 2003, 2004, 2005, 2006 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
@@ -11,9 +12,9 @@
 // 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, 59 Temple Place - Suite 330, Boston,
-// MA 02111-1307, USA.
+// along with this program; if not, write to the Free Software
+// Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA
+// 02110-1301 USA
 //
 // As a special exception, you may use this file as part of a free
 // software library without restriction.  Specifically, if other files
@@ -28,15 +29,9 @@
 #ifndef OLENA_CORE_ABSTRACT_IMAGE_HH
 # define OLENA_CORE_ABSTRACT_IMAGE_HH
 
-# include <oln/core/typedefs.hh>
-
-# define oln_type_of_(ImageType, Alias) \
-mlc_type_of_(oln, oln::category::image, ImageType, Alias)
-
-# define oln_type_of(ImageType, Alias) \
-mlc_type_of(oln, oln::category::image, ImageType, Alias)
-
-
+# include <mlc/cmp.hh>
+# include <mlc/to_string.hh>
+# include <oln/core/abstract/internal/image_impl.hh>
 
 
 namespace oln {
@@ -48,145 +43,174 @@
   // fwd decls
   namespace abstract
   {
-    template <typename P> class point;
     template <typename I> class image;
-    template <typename I> class image_without_nbh;
-    template <typename I> class readonly_image;
-    template <typename I> class raw_image;
+// --------------------------------------------------------------------
+// FIXME: To be enabled later.
+// --------------------------------------------------------------------
+//     template <typename I> class image_without_nbh;
+//     template <typename I> class readonly_image;
+//     template <typename I> class raw_image;
+//     template <typename P> class point;
+// --------------------------------------------------------------------
   }
 
-  namespace category
-  {
-    struct image;
-  }
-
-
-  /// Default properties of any image type.
+  // Declare virtual types.
+  mlc_decl_typedef(grid_type);
 
-  template <>
-  struct set_default_props < category::image >
+  /// Virtual types associated to oln::abstract::image.
+  template <typename I>
+  struct vtypes< category::image, abstract::image<I> >
   {
-    typedef mlc::undefined_type grid_type;
-
-    typedef mlc::undefined_type concrete_type;
-    typedef mlc::undefined_type value_type;
-    typedef mlc::undefined_type point_type;
-    typedef mlc::undefined_type size_type;
-
-    typedef mlc::undefined_type piter_type;
-    typedef mlc::undefined_type fwd_piter_type;
-    typedef mlc::undefined_type bkd_piter_type;
-
-    typedef mlc::no_type value_storage_type;
-    typedef mlc::no_type storage_type;
-    typedef mlc::no_type delegated_type;
-    typedef mlc::no_type neighb_type;
-
-
-    typedef is_a<abstract::image_without_nbh> image_neighbness_type;
-    typedef is_a<abstract::readonly_image> image_constness_type;
-    typedef mlc::undefined_type image_rawness_type;
-    typedef mlc::undefined_type image_dimension_type;
-
-    //...
+    typedef I exact_type;
 
+// --------------------------------------------------------------------
+// FIXME: To be enabled later.
+// --------------------------------------------------------------------
+//     typedef mlc::undefined grid_type;
+//     typedef mlc::undefined concrete_type;
+//     typedef mlc::undefined value_type;
+//     typedef mlc::undefined point_type;
+//     typedef mlc::undefined size_type;
+
+//     typedef mlc::undefined piter_type;
+//     typedef mlc::undefined fwd_piter_type;
+//     typedef mlc::undefined bkd_piter_type;
+
+//     typedef mlc::none value_storage_type;
+//     typedef mlc::none storage_type;
+// --------------------------------------------------------------------
+    typedef mlc::none delegated_type;
+// --------------------------------------------------------------------
+// FIXME: To be enabled later.
+// --------------------------------------------------------------------
+//     typedef mlc::none neighb_type;
+
+//     typedef is_a<abstract::image_without_nbh> image_neighbness_type;
+//     typedef is_a<abstract::readonly_image> image_constness_type;
+//     typedef mlc::undefined image_rawness_type;
+// --------------------------------------------------------------------
+    typedef mlc::undefined image_dimension_type;
   };
 
+  // FIXME: This should be placed into stc/properties.hh.
+  template <typename Category, typename T>
+  struct packed_vtypes
+  {
+    // Empty.
+  };
 
   /// Retrieval of any image type properties (FIXME: say 'packing').
-
   template <typename I>
-  struct get_props < category::image, I >
+  struct packed_vtypes < category::image, I >
   {
-    typedef oln_type_of(I, grid) grid_type;
-
-    typedef oln_type_of(I, concrete) concrete_type;
-    typedef oln_type_of(I, value) value_type;
-    typedef oln_type_of(I, point) point_type;
-    typedef oln_type_of(I, size) size_type;
-
-    typedef oln_type_of(I, piter) piter_type;
-    typedef oln_type_of(I, fwd_piter) fwd_piter_type;
-    typedef oln_type_of(I, bkd_piter) bkd_piter_type;
-
-    typedef oln_type_of(I, value_storage) value_storage_type;
-    typedef oln_type_of(I, storage) storage_type;
+// --------------------------------------------------------------------
+// FIXME: To be enabled later.
+// --------------------------------------------------------------------
+//     typedef oln_type_of(I, grid) grid_type;
+
+//     typedef oln_type_of(I, concrete) concrete_type;
+//     typedef oln_type_of(I, value) value_type;
+//     typedef oln_type_of(I, point) point_type;
+//     typedef oln_type_of(I, size) size_type;
+
+//     typedef oln_type_of(I, piter) piter_type;
+//     typedef oln_type_of(I, fwd_piter) fwd_piter_type;
+//     typedef oln_type_of(I, bkd_piter) bkd_piter_type;
+
+//     typedef oln_type_of(I, value_storage) value_storage_type;
+//     typedef oln_type_of(I, storage) storage_type;
+// --------------------------------------------------------------------
     typedef oln_type_of(I, delegated) delegated_type;
-    typedef oln_type_of(I, neighb) neighb_type;
+// --------------------------------------------------------------------
+// FIXME: To be enabled later.
+// --------------------------------------------------------------------
+//     typedef oln_type_of(I, neighb) neighb_type;
 
 
-    typedef oln_type_of(I, image_neighbness) image_neighbness_type;
-    typedef oln_type_of(I, image_constness) image_constness_type;
-    typedef oln_type_of(I, image_rawness)   image_rawness_type;
+//     typedef oln_type_of(I, image_neighbness) image_neighbness_type;
+//     typedef oln_type_of(I, image_constness) image_constness_type;
+//     typedef oln_type_of(I, image_rawness)   image_rawness_type;
+// --------------------------------------------------------------------
     typedef oln_type_of(I, image_dimension) image_dimension_type;
 
     //...
 
     static void echo(std::ostream& ostr)
     {
-      ostr << "props_of( oln::category::image, " << mlc_to_string(I) << " ) =" << std::endl
+      ostr
+	<< "props_of( oln::category::image, " << mlc_to_string(I) << " ) ="
+	<< std::endl
 	   << "{" << std::endl
-
-	   << "\t grid_type = " << mlc_to_string(grid_type) << std::endl
-
-	   << "\t concrete_type = " << mlc_to_string(concrete_type) << std::endl
-	   << "\t value_type = " << mlc_to_string(value_type) << std::endl
-	   << "\t point_type = " << mlc_to_string(point_type) << std::endl
-	   << "\t size_type = " << mlc_to_string(size_type) << std::endl
-
-	   << "\t piter_type = " << mlc_to_string(piter_type) << std::endl
-	   << "\t fwd_piter_type = " << mlc_to_string(fwd_piter_type) << std::endl
-	   << "\t bkd_piter_type = " << mlc_to_string(bkd_piter_type) << std::endl
-
-	   << "\t value_storage_type = " << mlc_to_string(value_storage_type) << std::endl
-	   << "\t storage_type = " << mlc_to_string(storage_type) << std::endl
+// --------------------------------------------------------------------
+// FIXME: To be enabled later.
+// --------------------------------------------------------------------
+// 	<< "\t grid_type = " << mlc_to_string(grid_type) << std::endl
+
+// 	<< "\t concrete_type = " << mlc_to_string(concrete_type) << std::endl
+// 	<< "\t value_type = " << mlc_to_string(value_type) << std::endl
+// 	<< "\t point_type = " << mlc_to_string(point_type) << std::endl
+// 	<< "\t size_type = " << mlc_to_string(size_type) << std::endl
+
+// 	<< "\t piter_type = " << mlc_to_string(piter_type) << std::endl
+// 	<< "\t fwd_piter_type = " << mlc_to_string(fwd_piter_type) << std::endl
+// 	<< "\t bkd_piter_type = " << mlc_to_string(bkd_piter_type) << std::endl
+
+// 	<< "\t value_storage_type = " << mlc_to_string(value_storage_type) << std::endl
+// 	<< "\t storage_type = " << mlc_to_string(storage_type) << std::endl
+// ---------------------------------------------------------------------
 	   << "\t delegated_type = " << mlc_to_string(delegated_type) << std::endl
-	   << "\t neighb_type = " << mlc_to_string(neighb_type) << std::endl
-
-	   << "\t image_neighbness_type = " << mlc_to_string(image_neighbness_type)  << std::endl
-	   << "\t image_constness_type = " << mlc_to_string(image_constness_type) << std::endl
-	   << "\t image_rawness_type = " << mlc_to_string(image_rawness_type) << std::endl
+// --------------------------------------------------------------------
+// FIXME: To be enabled later.
+// --------------------------------------------------------------------
+// 	<< "\t neighb_type = " << mlc_to_string(neighb_type) << std::endl
+
+// 	<< "\t image_neighbness_type = " << mlc_to_string(image_neighbness_type) << std::endl
+// 	<< "\t image_constness_type = " << mlc_to_string(image_constness_type) << std::endl
+// 	<< "\t image_rawness_type = " << mlc_to_string(image_rawness_type) << std::endl
+// --------------------------------------------------------------------
 	   << "\t image_dimension_type = " << mlc_to_string(image_dimension_type) << std::endl
-
 	   << "}" << std::endl;
     }
 
     static void ensure()
     {
-      mlc::is_ok< grid_type >::ensure();
-      mlc::is_ok< concrete_type >::ensure();
-      mlc::is_ok< value_type >::ensure();
-      mlc::is_ok< point_type >::ensure();
-      mlc::is_ok< size_type >::ensure();
-      mlc::is_ok< piter_type >::ensure();
-      mlc::is_ok< fwd_piter_type >::ensure();
-      mlc::is_ok< bkd_piter_type >::ensure();
-
-      mlc::is_ok< value_storage_type >::ensure();
-      mlc::is_ok< storage_type >::ensure();
-      mlc::is_ok< delegated_type >::ensure();
-      mlc::is_ok< neighb_type >::ensure();
-
-      mlc::is_ok< image_neighbness_type >::ensure();
-      mlc::is_ok< image_constness_type >::ensure();
-      mlc::is_ok< image_rawness_type >::ensure();
-      mlc::is_ok< image_dimension_type >::ensure();
+// --------------------------------------------------------------------
+// FIXME: To be enabled later.
+// --------------------------------------------------------------------
+//       mlc::is_ok_< grid_type >::ensure();
+//       mlc::is_ok_< concrete_type >::ensure();
+//       mlc::is_ok_< value_type >::ensure();
+//       mlc::is_ok_< point_type >::ensure();
+//       mlc::is_ok_< size_type >::ensure();
+//       mlc::is_ok_< piter_type >::ensure();
+//       mlc::is_ok_< fwd_piter_type >::ensure();
+//       mlc::is_ok_< bkd_piter_type >::ensure();
+
+//       mlc::is_ok_< value_storage_type >::ensure();
+//       mlc::is_ok_< storage_type >::ensure();x
+// --------------------------------------------------------------------
+      mlc::is_ok_< delegated_type >::ensure();
+// --------------------------------------------------------------------
+// FIXME: To be enabled later.
+// --------------------------------------------------------------------
+//       mlc::is_ok_< neighb_type >::ensure();
+
+//       mlc::is_ok_< image_neighbness_type >::ensure();
+//       mlc::is_ok_< image_constness_type >::ensure();
+//       mlc::is_ok_< image_rawness_type >::ensure();
+// --------------------------------------------------------------------
+      mlc::is_ok_< image_dimension_type >::ensure();
     }
   };
 
-
-  template <typename I>
-  struct set_props < category::image, abstract::image<I> >
-  {
-    typedef I exact_type;
-  };
-
-
 } // end of namespace oln
 
 
-# include <oln/core/abstract/internal/image_impl.hh>
-# include <oln/core/gen/internal/value_box.hh>
+// --------------------------------------------------------------------
+// FIXME: To be enabled later.
+// --------------------------------------------------------------------
+// # include <oln/core/gen/internal/value_box.hh>
+// --------------------------------------------------------------------
 
 
 namespace oln
@@ -211,11 +235,14 @@
     template <typename E>
     struct image : public internal::get_image_impl < image<E>, E >
     {
-
-      /// typedefs
-      typedef oln_type_of(E, size)  size_type;
-      typedef oln_type_of(E, value) value_type;
-      typedef oln_type_of(E, point) point_type;
+// --------------------------------------------------------------------
+// FIXME: To be enabled later.
+// --------------------------------------------------------------------
+//       /// typedefs
+//       typedef oln_type_of(E, size)  size_type;
+//       typedef oln_type_of(E, value) value_type;
+//       typedef oln_type_of(E, point) point_type;
+// --------------------------------------------------------------------
 
 
       /*------------------*
@@ -231,10 +258,14 @@
       ** size2d.
       */
 
-      const size_type& size() const
-      {
-	return this->exact().impl_size();
-      }
+// --------------------------------------------------------------------
+// FIXME: To be enabled later.
+// --------------------------------------------------------------------
+//       const size_type& size() const
+//       {
+// 	return this->exact().impl_size();
+//       }
+// --------------------------------------------------------------------
 
 
       /*! \brief Return the number of points of the current image.
@@ -247,10 +278,14 @@
       ** not yet defined; ex: image2d<int> ima; cout << ima.npoints();
       */
 
-      unsigned long npoints() const
-      {
-	return this->exact().impl_npoints();
-      }
+// --------------------------------------------------------------------
+// FIXME: To be enabled later.
+// --------------------------------------------------------------------
+//       unsigned long npoints() const
+//       {
+// 	return this->exact().impl_npoints();
+//       }
+// --------------------------------------------------------------------
 
 
       /*! \brief Test if the point \a p belongs to the current image.
@@ -263,7 +298,11 @@
       ** \see hold_large
       */
 
-      bool hold(const point_type& p) const;  // impl is in box.hh
+// --------------------------------------------------------------------
+// FIXME: To be enabled later.
+// --------------------------------------------------------------------
+//       bool hold(const point_type& p) const;  // impl is in box.hh
+// --------------------------------------------------------------------
 
 
       /*! \brief Test if \a p is a proper point to access a value of
@@ -280,11 +319,15 @@
       ** \see hold
       */
 
-      bool hold_large(const point_type& p) const
-      {
-	precondition(this->npoints() != 0);
-	return this->exact().impl_hold_large(p);
-      }
+// --------------------------------------------------------------------
+// FIXME: To be enabled later.
+// --------------------------------------------------------------------
+//       bool hold_large(const point_type& p) const
+//       {
+// 	precondition(this->npoints() != 0);
+// 	return this->exact().impl_hold_large(p);
+//       }
+// --------------------------------------------------------------------
 
 
       /*! \brief Default implementation for hold_large.  If not
@@ -297,12 +340,16 @@
       ** \see hold_large
       */
 
-      bool impl_hold_large(const point_type& p) const
-      {
-	// it relies on 'impl_hold' to avoid counting one call to
-	// 'hold' when the effective call is 'hold_large'
-	return this->exact().impl_hold(p);
-      }
+// --------------------------------------------------------------------
+// FIXME: To be enabled later.
+// --------------------------------------------------------------------
+//       bool impl_hold_large(const point_type& p) const
+//       {
+// 	// it relies on 'impl_hold' to avoid counting one call to
+// 	// 'hold' when the effective call is 'hold_large'
+// 	return this->exact().impl_hold(p);
+//       }
+// --------------------------------------------------------------------
 
 
 
@@ -310,11 +357,15 @@
        ! concrete methods !
        *------------------*/
 
-      template <typename P>
-      void operator()(const oln::abstract::point<P>&) const
-      {
-	// FIXME: provide an explicit err msg, e.g., "(p) should not be used on an ima"
-      }
+// --------------------------------------------------------------------
+// FIXME: To be enabled later.
+// --------------------------------------------------------------------
+//       template <typename P>
+//       void operator()(const oln::abstract::point<P>&) const
+//       {
+// 	// FIXME: provide an explicit err msg, e.g., "(p) should not be used on an ima"
+//       }
+// --------------------------------------------------------------------
 
       /*! \brief Give access to the value stored at \a p in the
       ** current image.  Precisely it returns a box that encloses this
@@ -325,13 +376,17 @@
       ** \see value_box
       */
 
-      value_box<const E> operator[](const point_type& p) const
-      {
-	precondition(this->npoints() != 0);
-	precondition(this->hold_large(p));
-	value_box<const E> tmp(this->exact(), p);
-	return tmp;
-      }
+// --------------------------------------------------------------------
+// FIXME: To be enabled later.
+// --------------------------------------------------------------------
+//       value_box<const E> operator[](const point_type& p) const
+//       {
+// 	precondition(this->npoints() != 0);
+// 	precondition(this->hold_large(p));
+// 	value_box<const E> tmp(this->exact(), p);
+// 	return tmp;
+//       }
+// --------------------------------------------------------------------
 
 
       /*! \brief Gives access to the value stored at \a p in the
@@ -343,13 +398,17 @@
       ** \see value_box
       */
 
-      value_box<E> operator[](const point_type& p)
-      {
-	precondition(this->npoints() != 0);
-	precondition(this->hold_large(p));
-	value_box<E> tmp(this->exact(), p);
-	return tmp;
-      }
+// --------------------------------------------------------------------
+// FIXME: To be enabled later.
+// --------------------------------------------------------------------
+//       value_box<E> operator[](const point_type& p)
+//       {
+// 	precondition(this->npoints() != 0);
+// 	precondition(this->hold_large(p));
+// 	value_box<E> tmp(this->exact(), p);
+// 	return tmp;
+//       }
+// --------------------------------------------------------------------
 
 
       /*! \brief Destructor.
@@ -357,7 +416,6 @@
 
       virtual ~image()
       {
-	get_props<category::image, E>::ensure();
 	// FIXME: static check fails because "pointer to member conversion via virtual base"...
 // 	mlc_check_method_impl(E, const size_type&, size,       ,                  const);
 // 	mlc_check_method_impl(E, unsigned long,    npoints,    ,                  const);
@@ -390,14 +448,22 @@
       ** \see value_box, abstract::image<I>::operator[](point)
       */
 
-      const value_type get(const point_type& p) const;  // impl is in box.hh
+// --------------------------------------------------------------------
+// FIXME: To be enabled later.
+// --------------------------------------------------------------------
+//       const value_type get(const point_type& p) const;  // impl is in box.hh
+// --------------------------------------------------------------------
+
+// --------------------------------------------------------------------
+// FIXME: To be enabled later.
+// --------------------------------------------------------------------
 
       // FIXME: patch!
-
-      void resize_border(size_t new_border, bool copy_border = false) const
-      {
-	this->exact().impl_resize_border(new_border, copy_border);
-      }
+//       void resize_border(size_t new_border, bool copy_border = false) const
+//       {
+// 	this->exact().impl_resize_border(new_border, copy_border);
+//       }
+// --------------------------------------------------------------------
 
     protected:
 
@@ -412,100 +478,107 @@
       /*! \brief Op= (protected, empty).
       */
       void operator=(const image&) {}
-
     };
 
 
 
-    /*! \namespace oln::abstract::internal
-    ** \brief oln::abstract::internal namespace.
-    */
-    namespace internal {
-
-      template <typename E>
-      struct set_image_impl < image<E>, E > : public virtual image_impl<E>
-      {
-
-	/// typedefs
-
-	typedef typename image_impl<E>::D D;
-
-	typedef oln_type_of(D, size)  size_type;
-	typedef oln_type_of(D, point) point_type;
-	typedef oln_type_of(D, value) value_type;
+// --------------------------------------------------------------------
+// FIXME: To be enabled later.
+// --------------------------------------------------------------------
+//     /*! \namespace oln::abstract::internal
+//     ** \brief oln::abstract::internal namespace.
+//     */
+//     namespace internal {
+
+//       template <typename E>
+//       struct set_image_impl < image<E>, E > : public virtual image_impl<E>
+//       {
+
+// 	/// typedefs
+
+// 	typedef typename image_impl<E>::D D;
+
+// 	typedef oln_type_of(D, size)  size_type;
+// 	typedef oln_type_of(D, point) point_type;
+// 	typedef oln_type_of(D, value) value_type;
+
+// 	// delegations are "template methods" (Cf. the GOF's book)
+
+// 	const size_type& impl_size() const
+// 	{
+// 	  const size_type& s = this->delegate().size();
+// 	  this->exact().impl_size_extra(s);
+// 	  return s;
+// 	}
+
+// 	unsigned long impl_npoints() const
+// 	{
+// 	  unsigned long n = this->delegate().npoints();
+// 	  this->exact().impl_npoints_extra(n);
+// 	  return n;
+// 	}
+
+// 	bool impl_hold(const point_type& p) const
+// 	{
+// 	  this->exact().impl_hold_extra(p);
+// 	  return this->delegate().hold(p);
+// 	}
+
+// 	bool impl_hold_large(const point_type& p) const
+// 	{
+// 	  this->exact().impl_hold_large_extra(p);
+// 	  return this->delegate().hold_large(p);
+// 	}
+
+// 	value_box<const D> operator[](const point_type& p) const
+// 	{
+// 	  precondition(this->hold_large(p));
+// 	  return this->delegate().operator[](p);
+// 	}
+
+// 	value_box<D> operator[](const point_type& p)
+// 	{
+// 	  precondition(this->hold_large(p));
+// 	  return this->delegate().operator[](p);
+// 	}
+
+// 	const value_type impl_get(const point_type& p) const
+// 	{
+// 	  this->exact().impl_get_extra(p);
+// 	  return this->delegate().get(p);
+// 	}
+
+// 	// FIXME: patch
+
+// 	void impl_resize_border(size_t new_border, bool copy_border) const
+// 	{
+// 	  this->delegate().impl_resize_border(new_border, copy_border);
+// 	}
+
+// 	// extra code; default is "do nothing"
+
+// 	void impl_size_extra(const size_type& s) const {}
+// 	void impl_npoints_extra(unsigned long n) const {}
 
-	// delegations are "template methods" (Cf. the GOF's book)
-
-	const size_type& impl_size() const
-	{
-	  const size_type& s = this->delegate().size();
-	  this->exact().impl_size_extra(s);
-	  return s;
-	}
+// 	void impl_hold_extra(const point_type& p) const {}
+// 	void impl_hold_large_extra(const point_type& p) const {}
 
-	unsigned long impl_npoints() const
-	{
-	  unsigned long n = this->delegate().npoints();
-	  this->exact().impl_npoints_extra(n);
-	  return n;
-	}
-
-	bool impl_hold(const point_type& p) const
-	{
-	  this->exact().impl_hold_extra(p);
-	  return this->delegate().hold(p);
-	}
-
-	bool impl_hold_large(const point_type& p) const
-	{
-	  this->exact().impl_hold_large_extra(p);
-	  return this->delegate().hold_large(p);
-	}
-
-	value_box<const D> operator[](const point_type& p) const
-	{
-	  precondition(this->hold_large(p));
-	  return this->delegate().operator[](p);
-	}
-
-	value_box<D> operator[](const point_type& p)
-	{
-	  precondition(this->hold_large(p));
-	  return this->delegate().operator[](p);
-	}
-
-	const value_type impl_get(const point_type& p) const
-	{
-	  this->exact().impl_get_extra(p);
-	  return this->delegate().get(p);
-	}
-
-	// FIXME: patch
-
-	void impl_resize_border(size_t new_border, bool copy_border) const
-	{
-	  this->delegate().impl_resize_border(new_border, copy_border);
-	}
-
-	// extra code; default is "do nothing"
-
-	void impl_size_extra(const size_type& s) const {}
-	void impl_npoints_extra(unsigned long n) const {}
-
-	void impl_hold_extra(const point_type& p) const {}
-	void impl_hold_large_extra(const point_type& p) const {}
-
-	void impl_get_extra(const point_type&) const {}
-      };
+// 	void impl_get_extra(const point_type&) const {}
+//       };
 
-    } // end of namespace oln::abstract::internal
+//     } // end of namespace oln::abstract::internal
+// --------------------------------------------------------------------
 
   } // end of namespace oln::abstract
 
 } // end of namespace oln
 
 
-# include <oln/core/abstract/piter.hh>
+// --------------------------------------------------------------------
+// FIXME: To be enabled later.
+// --------------------------------------------------------------------
+// # include <oln/core/abstract/piter.hh>
+// --------------------------------------------------------------------
 // this allows for browsing points in file
 // where oln/core/abstract/image.hh is included
 
Index: oln/core/abstract/image_entry.hh
--- oln/core/abstract/image_entry.hh	(revision 0)
+++ oln/core/abstract/image_entry.hh	(working copy)
@@ -1,4 +1,4 @@
-// Copyright (C) 2005 EPITA Research and Development Laboratory
+// Copyright (C) 2005, 2006 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
@@ -11,9 +11,9 @@
 // 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, 59 Temple Place - Suite 330, Boston,
-// MA 02111-1307, USA.
+// along with this program; if not, write to the Free Software
+// Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA
+// 02110-1301 USA
 //
 // As a special exception, you may use this file as part of a free
 // software library without restriction.  Specifically, if other files
@@ -28,47 +28,49 @@
 #ifndef OLENA_CORE_ABSTRACT_IMAGE_ENTRY_HH
 # define OLENA_CORE_ABSTRACT_IMAGE_ENTRY_HH
 
-# include <oln/core/abstract/image_constness.hh>
-# include <oln/core/abstract/image_dimension.hh>
-# include <oln/core/abstract/image_neighbness.hh>
-# include <oln/core/abstract/image_typeness.hh>
-# include <oln/core/abstract/image_valuedness.hh>
-# include <oln/core/abstract/image_rawness.hh>
+# include <oln/core/abstract/image.hh>
+# include <stc/entry.hh>
 
-
-
-
-namespace oln {
-
-  // fwd decl
-  namespace abstract {
+namespace oln
+{
+  namespace abstract
+  {
+    // Forward declaration.
     template <typename E> struct image_entry;
   }
 
-  // entry => no super type but a category
-
+  /// \brief Uplink.
+  ///
+  /// oln::abstract::image<E> is not the direct super type of
+  /// oln::abstract::image_entry<E>, however, it is declared as such
+  /// using set_super_type, to make the virtual type retrieval system
+  /// work.
   template <typename E>
-  struct set_category < abstract::image_entry<E> > { typedef category::image ret; };
-
+  struct set_super_type< abstract::image_entry<E> >
+  {
+    typedef abstract::image<E> ret;
+  };
 
-  namespace abstract {
+  namespace abstract
+  {
 
     template <typename E>
-    struct image_entry :
-      // intrusive:
-      public oln_type_of_(E, image_constness) ::template instantiated_with<E>::ret,
-      public oln_type_of_(E, image_dimension) ::template instantiated_with<E>::ret,
-      public oln_type_of_(E, image_neighbness) ::template instantiated_with<E>::ret,
-      public oln_type_of_(E, image_rawness) ::template instantiated_with<E>::ret,
-      // ...
-      public typeness::inheritance_switch<E>,
-      public valuedness::inheritance_switch<E>
+    struct image_entry : public stc::entry<E>
     {
     protected:
       image_entry() {}
     };
 
-  }
+    /// \brief Tags for abstractions.
+    /// Use them instead of hard-coded numbers.
+    enum abstraction_tags
+      {
+	dimension_tag = 1,
+	constness_tag
+	// ...
+      };
+
+  }  // end of namespace oln::abstract
 
 } // end of namespace oln
 
Index: oln/core/abstract/macros.hh
--- oln/core/abstract/macros.hh	(revision 0)
+++ oln/core/abstract/macros.hh	(revision 0)
@@ -0,0 +1,46 @@
+// Copyright (C) 2006 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
+// 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 program; if not, write to the Free Software
+// Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA
+// 02110-1301 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 OLENA_CORE_ABSTRACT_MACROS_HH
+# define OLENA_CORE_ABSTRACT_MACROS_HH
+
+// FIXME: Perhaps only ``external'' versions are really useful (since
+// they are more precise), and we could get rid of other versions.
+// Likewise, we could drop the stc_typeof without namespace
+// information.
+
+/// \def Shortcuts for virtual types associated to images (version to
+// be used inside a template).
+# define oln_type_of(ImageType, Alias) \
+stc_typeof_in_namespace(oln, oln::category::image, ImageType, Alias)
+
+/// \def Shortcuts for virtual types associated to images (version to
+// be used outside a template).
+# define oln_type_of_(ImageType, Alias) \
+stc_typeof_in_namespace_(oln, oln::category::image, ImageType, Alias)
+
+#endif // ! OLENA_CORE_ABSTRACT_MACROS_HH
Index: oln/core/abstract/image_dimension.hh
--- oln/core/abstract/image_dimension.hh	(revision 0)
+++ oln/core/abstract/image_dimension.hh	(working copy)
@@ -1,4 +1,4 @@
-// Copyright (C) 2005 EPITA Research and Development Laboratory
+// Copyright (C) 2005, 2006 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
@@ -11,9 +11,9 @@
 // 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, 59 Temple Place - Suite 330, Boston,
-// MA 02111-1307, USA.
+// along with this program; if not, write to the Free Software
+// Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA
+// 02110-1301 USA
 //
 // As a special exception, you may use this file as part of a free
 // software library without restriction.  Specifically, if other files
@@ -88,4 +88,18 @@
 } // end of namespace oln
  
 
+// Register the dimension switch for oln::abstract::image_entry.
+namespace stc
+{
+  template <typename E>
+  struct set_entry_node<E, oln::abstract::dimension_tag> :
+    // FIXME: Don't use the abstraction as a property, but the
+    // corresponding grid instead.
+    public oln_type_of_(E, image_dimension)
+      ::template instantiated_with<E>::ret
+  {
+  };
+}
+
+
 #endif // ! OLENA_CORE_ABSTRACT_IMAGE_DIMENSION_HH
Index: oln/core/abstract/any.hh
--- oln/core/abstract/any.hh	(revision 0)
+++ oln/core/abstract/any.hh	(working copy)
@@ -1,4 +1,5 @@
-// Copyright (C) 2001, 2002, 2003, 2004, 2005 EPITA Research and Development Laboratory
+// Copyright (C) 2001, 2002, 2003, 2004, 2005, 2006 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
@@ -11,9 +12,9 @@
 // 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, 59 Temple Place - Suite 330, Boston,
-// MA 02111-1307, USA.
+// along with this program; if not, write to the Free Software
+// Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA
+// 02110-1301 USA
 //
 // As a special exception, you may use this file as part of a free
 // software library without restriction.  Specifically, if other files
@@ -39,9 +40,7 @@
 
 
     template <typename E>
-    struct any
-      :
-      public mlc::any<E, mlc::dispatch_policy::simple>
+    struct any : public mlc::any<E, mlc::dispatch_policy::simple>
     {
     protected:
       typedef mlc::any<E, mlc::dispatch_policy::simple> super;
@@ -51,8 +50,7 @@
 
 
     template <typename E>
-    struct any_best_speed
-      :
+    struct any_best_speed :
       public mlc::any<E, mlc::dispatch_policy::best_speed>
     {
     protected:
@@ -66,7 +64,8 @@
 } // end of namespace oln
 
 
-# define oln_is_any(Type) mlc::or_< mlc_is_a(Type, oln::abstract::any),			\
+# define oln_is_any(Type)					\
+  mlc::or_< mlc_is_a(Type, oln::abstract::any),			\
                                     mlc_is_a(Type, oln::abstract::any_best_speed) >
 
 
Index: oln/core/abstract/internal/image_impl.hh
--- oln/core/abstract/internal/image_impl.hh	(revision 0)
+++ oln/core/abstract/internal/image_impl.hh	(working copy)
@@ -1,4 +1,4 @@
-// Copyright (C) 2005 EPITA Research and Development Laboratory
+// Copyright (C) 2005, 2006 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
@@ -11,9 +11,9 @@
 // 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, 59 Temple Place - Suite 330, Boston,
-// MA 02111-1307, USA.
+// along with this program; if not, write to the Free Software
+// Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA
+// 02110-1301 USA
 //
 // As a special exception, you may use this file as part of a free
 // software library without restriction.  Specifically, if other files
@@ -28,47 +28,102 @@
 #ifndef OLENA_CORE_ABSTRACT_INTERNAL_IMAGE_IMPL_HH
 # define OLENA_CORE_ABSTRACT_INTERNAL_IMAGE_IMPL_HH
 
-# include <mlc/types.hh>
+# include <mlc/flags.hh>
+# include <oln/core/typedefs.hh>
 # include <oln/core/abstract/any.hh>
+# include <oln/core/abstract/macros.hh>
 
+// FIXME: To be rewtitten using Metalic's switch/case?
 
-namespace oln {
+namespace oln
+{
+
+  /// Image category.
+  namespace category
+  {
+    struct image;
+  }
+
+  namespace abstract
+  {
+
+    namespace internal
+    {
 
-  namespace abstract {
+      /* A summary of the implementation retrieval mechanism.
 
-    namespace internal {
 
-      // FIXME: doc!
+     any_best_speed<E>                        any_best_speed<E>
+            ^                                        ^
+            |                                        |
+            |(*)                                     |
+            |                                        |
+    set_image_impl<A, E>                             |
+            ^                                        |
+            |                                        |
+  get_image_impl_helper<A, D, E>  get_image_impl_helper<A, mlc::no_type, E>
+            |                                        |
+            `--------------.       ,-----------------'
+                           |       |
+                           o       o
+                               o
+                               |
+                        get_image_impl<E>
+                               ^
+                               |
+                             image<E>
+                               ^
+                               |
+                              ...
+                               ^
+                               |
+                               E
+                            (client)
+
+
+         The D parameter is the delegated type.  If there is no
+	 delegated type (i.e. D = mlc::none), get_image_impl inherits
+	 from oln::any_best_speed (trough get_image_impl_helper);
+	 otherwise, get_image_impl is plugged to set_image_impl, a
+	 class than can specialized by the user.
+
+         (*) This relation is not mandatory (set_image_impl is to be
+         defined by the user), but it every specialization of
+         set_image_impl *should* inherit from oln::any_best_speed.  */
 
       template <typename A, typename D, typename E>
       struct get_image_impl_helper;
 
-      // entry point:
+      // Entry point.
       template <typename A, typename E>
-      struct get_image_impl : public get_image_impl_helper <A, oln_type_of(E, delegated), E>
+      struct get_image_impl :
+	public get_image_impl_helper <A, oln_type_of(E, delegated), E>
       {
       };
 
       template <typename A, typename E>
-      struct get_image_impl_helper <A, mlc::no_type, E>
-	:
+      struct get_image_impl_helper <A, mlc::none, E> :
 	public virtual oln::abstract::any_best_speed<E>
       {
-	// no impl
+	// No implementation.
       };
 
+      // To be specialized.
       template <typename A, typename E>
-      struct set_image_impl; // to be specialized...
+      struct set_image_impl;
 
       template <typename A, typename D, typename E>
       struct get_image_impl_helper : public set_image_impl <A, E>
       {
-	// impl comes from  internal::set_image_impl <A, E>
+	// Implementation comes from internal::set_image_impl<A, E>.
       };
 
+      /// \brief Abstraction factorization for the delegation mechanism.
+      ///
+      /// set_image_impl specializations should inherit from this
+      /// class (as a public virtual derivation).
       template <typename E>
-      struct image_impl
-	:
+      struct image_impl	:
 	public virtual oln::abstract::any_best_speed<E>
       {
 	typedef oln_type_of(E, delegated) D;
@@ -76,9 +131,9 @@
 	const D& delegate() const { return this->exact().impl_delegate(); }
       };
 
-    } // end of namespace internal
+    } // end of namespace oln::abstract::internal
 
-  } // end of namespace abstract
+  } // end of namespace oln::abstract
 
 } // end of namespace oln
 
Index: oln/Makefile.am
--- oln/Makefile.am	(revision 0)
+++ oln/Makefile.am	(revision 0)
@@ -0,0 +1,13 @@
+## Process this file through Automake to create Makefile.in -*- Makefile -*-
+
+olndir = $(includedir)/oln
+nobase_oln_HEADERS =				\
+  core/typedefs.hh				\
+						\
+  core/abstract/any.hh				\
+  core/abstract/image.hh			\
+  core/abstract/image_entry.hh			\
+  core/abstract/image_dimension.hh		\
+  core/abstract/macros.hh			\
+						\
+  core/abstract/internal/image_impl.hh
Index: Makefile.am
--- Makefile.am	(revision 0)
+++ Makefile.am	(revision 0)
@@ -0,0 +1,3 @@
+## Process this file through Automake to create Makefile.in -*- Makefile -*-
+
+SUBDIRS = oln tests
                    
                  
                  
                          
                            
                            1
                            
                          
                          
                            
                            0
                            
                          
                          
                            
    
                          
                        
                    
                    
                        https://svn.lrde.epita.fr/svn/oln/trunk/static
Index: ChangeLog
from  Roland Levillain  <roland(a)lrde.epita.fr>
	Add an abstraction manipulator.
	* stc/properties.hh (std::is_a): New helper.
	(stc_super, stc_pseudosuper, stc_typeof): Simplify the definitions
	of these macros, using their ``underscored'' version.
	(stc_typeof_in_namespace, stc_typeof_in_namespace_): New macro.
	* tests/properties.cc: Typos in comments.
 stc/properties.hh   |   54 +++++++++++++++++++++++++++++++++++++++++++---------
 tests/properties.cc |    4 +--
 2 files changed, 47 insertions(+), 11 deletions(-)
Index: tests/properties.cc
--- tests/properties.cc	(revision 460)
+++ tests/properties.cc	(working copy)
@@ -76,7 +76,7 @@
   // Forward declaration.
   struct B;
 
-  // Warning, this sugar might me remove from properties.hh.
+  // Warning, this sugar might be removed in the future.
   stc_set_super(B, A);
 
   /// Types associated to my::B.
@@ -122,7 +122,7 @@
   // from B's vtypes (see the specialization
   // types<category::my_cat, C>).
 
-  // Warning, this sugar might me remove from properties.hh.
+  // Warning, this sugar might be removed in the future.
   /// Link to B (``pseudo'' inheritance).
   stc_set_pseudosuper(C, B);
 
Index: stc/properties.hh
--- stc/properties.hh	(revision 460)
+++ stc/properties.hh	(working copy)
@@ -345,6 +345,26 @@
   struct e_n_d__w_i_t_h__s_e_m_i_c_o_l_o_n
 
 
+/*---------------------.
+| Abstraction helper.  |
+`---------------------*/
+
+namespace stc
+{
+  /// Allow the manipulation of an abstraction (i.e., a template type)
+  /// as a plain type.
+  template <template <typename> class abstraction>
+  struct is_a
+  {
+    template <typename E>
+    struct instantiated_with
+    {
+      typedef abstraction<E> ret;
+    };
+  };
+}
+
+
 /*---------.
 | Macros.  |
 `---------*/
@@ -373,29 +393,45 @@
      typedef PseudoSuper ret;			\
    }
 
-/// \def Get the immediate base class of T (version with typename).
+/// \def Get the immediate base class of T (version to be used inside
+/// a template).
 # define stc_super(T)				\
-   typename set_super_type<T>::ret
+   typename stc_super_(T)
 
-/// \def Get the immediate base class of T (version without typename).
+/// \def Get the immediate base class of T (version to be used outside
+/// a template).
 # define stc_super_(T)				\
    set_super_type<T>::ret
 
-/// \def Get the pseudosuper class of T (version with typename).
+/// \def Get the pseudosuper class of T (version to be used inside a
+/// template).
 # define stc_pseudosuper(T)			\
-   typename set_pseudosuper_type<T>::ret
+   typename stc_pseudosuper_(T)
 
-/// \def Get the pseudosuper class of T (version without typename).
+/// \def Get the pseudosuper class of T (version to be used outside a
+/// template).
 # define stc_pseudosuper_(T)			\
    set_pseudosuper_type<T>::ret
 
-/// Get the property \a Typedef from \a FromType (version with typename).
+/// Get the property \a Typedef from \a FromType (version to be used
+/// inside a template).
 #define stc_typeof(Category, FromType, Typedef)				\
-  typename typeof_<Category, FromType, typedef_:: Typedef##_type >::ret
+  typename stc_typeof_(Category, FromType, Typedef)
 
-/// Get the property \a Typedef from \a FromType (version without typename).
+/// Get the property \a Typedef from \a FromType (version to be used
+/// outside a template).
 #define stc_typeof_(Category, FromType, Typedef)		\
   typeof_<Category, FromType, typedef_:: Typedef##_type >::ret
 
+/// Get the property \a Typedef, declared in \a Namespace, from \a
+/// FromType (version to be used inside a template).
+#define stc_typeof_in_namespace(Namespace, Category, FromType, Typedef)	    \
+  typename stc_typeof_in_namespace_(Namespace, Category, FromType, Typedef)
+
+/// Get the property \a Typedef, declared in \a Namespace, from \a
+/// FromType (version to be used outside a template).
+#define stc_typeof_in_namespace_(Namespace, Category, FromType, Typedef) \
+  Namespace::typeof_<Category, FromType,				 \
+                     Namespace::typedef_:: Typedef##_type >::ret
 
 #endif // ! STATIC_PROPERTIES_HH
                    
                  
                  
                          
                            
                            1
                            
                          
                          
                            
                            0
                            
                          
                          
                            
    
                          
                        
                    20 Apr '06
                    
                        https://svn.lrde.epita.fr/svn/oln/trunk/metalic
Index: ChangeLog
from  Roland Levillain  <roland(a)lrde.epita.fr>
	* mlc/Makefile.am (nobase_mlc_HEADERS): Add missing files.
	Remove type.hh.
 Makefile.am |   14 ++++++++++++--
 1 file changed, 12 insertions(+), 2 deletions(-)
Index: mlc/Makefile.am
--- mlc/Makefile.am	(revision 459)
+++ mlc/Makefile.am	(working copy)
@@ -2,23 +2,33 @@
 
 mlcdir = $(includedir)/mlc
 nobase_mlc_HEADERS = 				\
+  abort.hh 					\
   any.hh					\
+  assert.hh					\
+  bexpr.hh					\
   bool.hh					\
   case.hh					\
+  char.hh					\
   cmp.hh					\
   comma.hh					\
+  contract.hh					\
   elt.hh					\
   flags.hh					\
   if.hh						\
   implies.hh					\
+  int.hh					\
   is_a.hh					\
   logic.hh					\
   pair.hh					\
   ret.hh					\
+  switch.hh					\
   to_string.hh					\
-  type.hh					\
   typedef.hh					\
   uint.hh					\
   valist.hh					\
   value.hh					\
-  wrap.hh
+  values.hh					\
+  wrap.hh					\
+						\
+  abstract/bexpr.hh				\
+  abstract/type.hh
                    
                  
                  
                          
                            
                            1
                            
                          
                          
                            
                            0
                            
                          
                          
                            
    
                          
                        
                    20 Apr '06
                    
                        https://svn.lrde.epita.fr/svn/oln/trunk/extended
Index: ChangeLog
from  Roland Levillain  <roland(a)lrde.epita.fr>
	* xtd/Makefile.am (nobase_xtd_HEADERS): Add missing files.
 Makefile.am |   55 ++++++++++++++++++++++++++++++++++++++++++++++++++++++-
 1 file changed, 54 insertions(+), 1 deletion(-)
Index: xtd/Makefile.am
--- xtd/Makefile.am	(revision 458)
+++ xtd/Makefile.am	(working copy)
@@ -3,4 +3,57 @@
 xtddir = $(includedir)/xtd
 
 # FIXME: To be filled.
-#nobase_xtd_HEADERS = 
+nobase_xtd_HEADERS = 				\
+  arg.hh					\
+  args.hh					\
+  bind.hh					\
+  cast.hh					\
+  cfun.hh					\
+  literal.hh					\
+  math.hh					\
+  mexpr.hh					\
+  mfun.hh					\
+  optraits.hh					\
+  res.hh					\
+  traits.hh					\
+						\
+  abstract/fun.hh				\
+  abstract/fun_expr.hh				\
+  abstract/fun_nary_expr.hh			\
+  abstract/meta_fun.hh				\
+  abstract/meta_nary_fun.hh			\
+  abstract/nary_fun.hh				\
+  abstract/open_fun.hh				\
+  abstract/open_nary_fun.hh			\
+  abstract/plain_fun.hh				\
+  abstract/plain_nary_fun.hh			\
+						\
+  builtin/traits.hh				\
+						\
+  internal/mlc.hh				\
+  internal/opmacros.hh				\
+						\
+  math/abs.hh					\
+  math/acos.hh					\
+  math/arith.hh					\
+  math/asin.hh					\
+  math/atan.hh					\
+  math/atan2.hh					\
+  math/ceil.hh					\
+  math/cmp.hh					\
+  math/constraints.hh				\
+  math/cos.hh					\
+  math/cosh.hh					\
+  math/exp.hh					\
+  math/floor.hh					\
+  math/id.hh					\
+  math/includes.hh				\
+  math/log.hh					\
+  math/log10.hh					\
+  math/logic.hh					\
+  math/pow.hh					\
+  math/sin.hh					\
+  math/sinh.hh					\
+  math/sqrt.hh					\
+  math/tan.hh					\
+  math/tanh.hh
                    
                  
                  
                          
                            
                            1
                            
                          
                          
                            
                            0
                            
                          
                          
                            
    
                          
                        
                    
                    
                        https://svn.lrde.epita.fr/svn/oln/trunk
Index: ChangeLog
from  Roland Levillain  <roland(a)lrde.epita.fr>
	Start the Olena subproject.
	* Makefile.am (SUBDIRS): Add olena.
	* olena/Makefile.am, olena/oln/Makefile.am,
	* olena/tests/Makefile.am: New files.
	* configure.ac: Configure them.
	* TODO: Update.
 Makefile.am       |    2 +-
 TODO              |   26 ++++++++------------------
 configure.ac      |    1 +
 olena/Makefile.am |    3 +++
 4 files changed, 13 insertions(+), 19 deletions(-)
Index: TODO
--- TODO	(revision 457)
+++ TODO	(working copy)
@@ -1,27 +1,17 @@
 See also the TODO in oln-proto-1.0 and oln-proto-stl-style
 
-* Metalic
 
-** Modules
-Split Metalic into several modules:
+* Release process
+This is to be done later, before the release of the whole project or
+of one or some of its components.
+
+** Tests output
+The tests should print nothing on the stantard output, nor on the
+standard error.
 
-  mlc : core Metalic tools
-  stc : static inheritance
-  xtd : meta-functions and operator traits (for built-in types)
-  dyn : static-dynamic bridge (work of Damien Thivolle and Nicolas
-        Pouillard)
-
-** Static inheritance
-
-*** mlc/properties -- Roland
-
-
-* Olena
-
-
-* Integre
 
 
 Local Variables:
 mode: outline
+ispell-local-dictionary: "american"
 End:
Index: configure.ac
--- configure.ac	(revision 457)
+++ configure.ac	(working copy)
@@ -62,6 +62,7 @@
       extended/xtd/Makefile
     static/Makefile
       static/stc/Makefile
+    olena/Makefile
 ])
 
 # Checks for library functions.
Index: Makefile.am
--- Makefile.am	(revision 457)
+++ Makefile.am	(working copy)
@@ -1,3 +1,3 @@
 ## Process this file through Automake to produce Makefile.in -*- Makefile -*-
 
-SUBDIRS = build-aux metalic extended static
+SUBDIRS = build-aux metalic extended static olena
Index: olena/Makefile.am
--- olena/Makefile.am	(revision 0)
+++ olena/Makefile.am	(revision 0)
@@ -0,0 +1,3 @@
+## Process this file through Automake to create Makefile.in -*- Makefile -*-
+
+SUBDIRS =
                    
                  
                  
                          
                            
                            1
                            
                          
                          
                            
                            0