Index: libcfa/prelude.cf
===================================================================
--- libcfa/prelude.cf	(revision 17cd4ebabb684710b2f3698449093c4e84b8fb70)
+++ libcfa/prelude.cf	(revision f7f6785834eaf341228a98a2b3786030fe9329ba)
@@ -3,11 +3,11 @@
 // Copyright (C) Glen Ditchfield 1994, 1999
 // 
-// prelude.cf -- Standard Cforall Preample
+// prelude.cf -- Standard Cforall Preample for C99
 // 
 // Author           : Glen Ditchfield
 // Created On       : Sat Nov 29 07:23:41 2014
 // Last Modified By : Peter A. Buhr
-// Last Modified On : Wed Jan  7 17:42:15 2015
-// Update Count     : 28
+// Last Modified On : Mon Jan 19 22:20:57 2015
+// Update Count     : 51
 //
 
@@ -26,6 +26,6 @@
 const int 0, 1;
 
-forall ( dtype DT ) const DT * const 	0;
-forall ( ftype FT ) FT * const 		0;
+forall ( dtype DT ) const DT * const	0;
+forall ( ftype FT ) FT * const		0;
 
 // ------------------------------------------------------------
@@ -35,29 +35,35 @@
 // ------------------------------------------------------------
 
-int		?++( int * ),		 ?--( int * );
-unsigned	?++( unsigned * ),	 ?--( unsigned * );
-long		?++( long * ),		 ?--( long * );
-long unsigned	?++( long unsigned * ),	 ?--( long unsigned * );
-float		?++( float * ),		 ?--( float * );
-double		?++( double * ),	 ?--( double * );
-long double	?++( long double * ),	 ?--( long double * );
+_Bool			?++( _Bool * ),				?--( _Bool * );
+signed int		?++( signed int * ),			?--( signed int * );
+unsigned int		?++( unsigned int * ),			?--( unsigned int * );
+signed long int		?++( signed long int * ),		?--( signed long int * );
+unsigned long int	?++( unsigned long int * ),		?--( unsigned long int * );
+signed long long int	?++( signed long long int * ),		?--( signed long long int * );
+unsigned long long int	?++( unsigned long long int * ),	?--( unsigned long long int * );
+float			?++( float * ),				?--( float * );
+double			?++( double * ),			?--( double * );
+long double		?++( long double * ),			?--( long double * );
+float _Complex		?++( float _Complex * ),		?--( float _Complex * );
+double _Complex		?++( double _Complex * ),		?--( double _Complex * );
+long double _Complex	?++( long double _Complex * ),		?--( long double _Complex * );
 
 forall( type T ) T *			 ?++(		     T ** );
+forall( type T ) const T *		 ?++( const	     T ** );
+forall( type T ) volatile T *		 ?++(	    volatile T ** );
+forall( type T ) const volatile T *	 ?++( const volatile T ** );
 forall( type T ) T *			 ?--(		     T ** );
-forall( type T ) const T *		 ?++( const	     T ** );
 forall( type T ) const T *		 ?--( const	     T ** );
-forall( type T ) volatile T *		 ?++(	    volatile T ** );
 forall( type T ) volatile T *		 ?--(	    volatile T ** );
-forall( type T ) const volatile T *	 ?++( const volatile T ** );
 forall( type T ) const volatile T *	 ?--( const volatile T ** );
 
-forall( type T ) lvalue T		 ?[?](		      T *,	     ptrdiff_t );
-forall( type T ) const lvalue T		 ?[?]( const	      T *,	     ptrdiff_t );
-forall( type T ) volatile lvalue T	 ?[?](       volatile T *,	     ptrdiff_t );
-forall( type T ) const volatile lvalue T ?[?]( const volatile T *,	     ptrdiff_t );
-forall( type T ) lvalue T		 ?[?]( ptrdiff_t,     T * );
-forall( type T ) const lvalue T		 ?[?]( ptrdiff_t,    const	     T * );
-forall( type T ) volatile lvalue T	 ?[?]( ptrdiff_t,    volatile	     T * );
-forall( type T ) const volatile lvalue T ?[?]( ptrdiff_t,    const volatile  T * );
+forall( type T ) lvalue T		 ?[?](		      T *,	    ptrdiff_t );
+forall( type T ) const lvalue T		 ?[?]( const	      T *,	    ptrdiff_t );
+forall( type T ) volatile lvalue T	 ?[?](       volatile T *,	    ptrdiff_t );
+forall( type T ) const volatile lvalue T ?[?]( const volatile T *,	    ptrdiff_t );
+forall( type T ) lvalue T		 ?[?](		ptrdiff_t,		  T * );
+forall( type T ) const lvalue T		 ?[?](		ptrdiff_t, const	  T * );
+forall( type T ) volatile lvalue T	 ?[?](		ptrdiff_t,	 volatile T * );
+forall( type T ) const volatile lvalue T ?[?](		ptrdiff_t, const volatile T * );
 
 // ------------------------------------------------------------
@@ -67,20 +73,26 @@
 // ------------------------------------------------------------
 
-int		++?( int * ), 		 --?( int * );
-unsigned	++?( unsigned * ), 	 --?( unsigned * );
-long		++?( long * ), 		 --?( long * );
-long unsigned	++?( long unsigned * ),  --?( long unsigned * );
-float		++?( float * ), 	 --?( float * );
-double		++?( double * ),	 --?( double * );
-long double	++?( long double * ), 	 --?( long double * );
+_Bool			++?( _Bool * ),				--?( _Bool * );
+signed int		++?( signed int * ),			--?( signed int * );
+unsigned int		++?( unsigned int * ),			--?( unsigned int * );
+signed long int		++?( signed long int * ),		--?( signed long int * );
+unsigned long int	++?( unsigned long int * ),		--?( unsigned long int * );
+signed long long int	++?( signed long long int * ),		--?( signed long long int * );
+unsigned long long int	++?( unsigned long long int * ),	--?( unsigned long long int * );
+float			++?( float * ),				--?( float * );
+double			++?( double * ),			--?( double * );
+long double		++?( long double * ),			--?( long double * );
+float _Complex		++?( float _Complex * ),		--?( float _Complex * );
+double _Complex		++?( double _Complex * ),		--?( double _Complex * );
+long double _Complex	++?( long double _Complex * ),		--?( long double _Complex * );
 
 forall( type T ) T *			 ++?(		     T ** );
+forall( type T ) const T *		 ++?( const	     T ** );
+forall( type T ) volatile T *		 ++?(	    volatile T ** );
+forall( type T ) const volatile T *	 ++?( const volatile T ** );
 forall( type T ) T *			 --?(		     T ** );
-forall( type T ) const T *		 ++?( const	     T ** );
-forall( type T ) const T * 		 --?( const	     T ** );
-forall( type T ) volatile T *		 ++?(	    volatile T ** );
-forall( type T ) volatile T * 		 --?(	    volatile T ** );
-forall( type T ) const volatile T *	 ++?( const volatile T ** );
-forall( type T ) const volatile T * 	 --?( const volatile T ** );
+forall( type T ) const T *		 --?( const	     T ** );
+forall( type T ) volatile T *		 --?(	    volatile T ** );
+forall( type T ) const volatile T *	 --?( const volatile T ** );
 
 forall( type T ) lvalue T		 *?(		     T * );
@@ -90,14 +102,23 @@
 forall( ftype FT ) lvalue FT		 *?( FT * );
 
-int 		+?( int ), 		 -?( int ), 		~?( int );
-unsigned 	+?( unsigned ), 	 -?( unsigned ),	~?( unsigned );
-unsigned long	+?( unsigned long ),	 -?( unsigned long ),	~?( unsigned long );
-long 		+?( long ), 		 -?( long ), 		~?( long );
-float		+?( float ), 		 -?( float );
-double 		+?( double ), 		 -?( double );
-long double 	+?( long double ),	 -?( long double );
-
-int	!?( int ),	!?( unsigned ),	!?( long ),	!?( unsigned long ),
-    	!?( float ),	!?( double );
+_Bool			+?( _Bool ),			-?( _Bool ),			~?( _Bool );	     
+signed int		+?( signed int ),		-?( signed int ),		~?( signed int );	     
+unsigned int		+?( unsigned int ),		-?( unsigned int ),		~?( unsigned int );	     
+signed long int		+?( signed long int ),		-?( signed long int ),		~?( signed long int );	     
+unsigned long int	+?( unsigned long int ),	-?( unsigned long int ),	~?( unsigned long int );	     
+signed long long int	+?( signed long long int ),	-?( signed long long int ),	~?( signed long long int );    
+unsigned long long int	+?( unsigned long long int ),	-?( unsigned long long int ),	~?( unsigned long long int );  
+float			+?( float ),			-?( float );
+double			+?( double ),			-?( double );
+long double		+?( long double ),		-?( long double );
+float _Complex		+?( float _Complex ),		-?( float _Complex );
+double _Complex		+?( double _Complex ),		-?( double _Complex );
+long double _Complex	+?( long double _Complex ),	-?( long double _Complex );
+
+signed int	!?( signed int ),		!?( unsigned int ),
+		!?( long int ),			!?( unsigned long int ),
+		!?( long long int ),		!?( unsigned long long int ),
+		!?( float ),			!?( double ),			!?( long double ),
+		!?( float _Complex ),		!?( double _Complex ),		!?( long double _Complex );
 
 forall ( dtype DT ) int !?( const volatile DT * );
@@ -110,22 +131,21 @@
 // ------------------------------------------------------------
 
-int		?*?( int, int ),
-    		?/?( int, int ),
-    		?%?( int, int );
-unsigned	?*?( unsigned, unsigned ),
-    		?/?( unsigned, unsigned ),
-    		?%?( unsigned, unsigned );
-unsigned long	?*?( unsigned long, unsigned long ),
-    		?/?( unsigned long, unsigned long ),
-    		?%?( unsigned long, unsigned long );
-long		?*?( long, long ),
-    		?/?( long, long ),
-    		?%?( long, long );
-float		?*?( float, float ),
-    		?/?( float, float );
-double		?*?( double, double ),
-    		?/?( double, double );
-long double	?*?( long double, long double ),
-    		?/?( long double, long double );
+_Bool			?*?( _Bool, _Bool ),					?/?( _Bool, _Bool ),				?%?( _Bool, _Bool );
+signed int		?*?( signed int, signed int ),				?/?( signed int, signed int ),			?%?( signed int, signed int );
+unsigned int		?*?( unsigned int, unsigned int ),			?/?( unsigned int, unsigned int ),		?%?( unsigned int, unsigned int );
+signed long int		?*?( signed long int, signed long int ),		?/?( signed long int, signed long int ),	?%?( signed long int, signed long int );
+unsigned long int	?*?( unsigned long int, unsigned long int ),		?/?( unsigned long int, long unsigned ),	?%?( long unsigned, long unsigned );
+signed long long int	?*?( signed long long int, signed long long int ),	?/?( signed long long int, signed long long int ), ?%?( signed long long int, signed long long int );
+unsigned long long int	?*?( unsigned long long int, unsigned long long int ),	?/?( unsigned long long int, long long unsigned ), ?%?( long long unsigned, long long unsigned );
+float			?*?( float, float ),					?/?( float, float );
+double			?*?( double, double ),					?/?( double, double );
+long double		?*?( long double, long double ),			?/?( long double, long double );
+// gcc does not support _Imaginary
+//float _Imaginary	?*?( float _Imaginary, float _Imaginary),		?/?( float _Imaginary, float _Imaginary );
+//double _Imaginary	?*?( double _Imaginary, double _Imaginary),		?/?( double _Imaginary, double _Imaginary );
+//long double _Imaginary	?*?( long double _Imaginary, long double _Imaginary),	?/?( long double _Imaginary, long double _Imaginary );
+float _Complex		?*?( float _Complex, float _Complex ),			?/?( float _Complex, float _Complex );
+double _Complex		?*?( double _Complex, double _Complex ),		?/?( double _Complex, double _Complex );
+long double _Complex	?*?( long double _Complex, long double _Complex ),	?/?( long double _Complex, long double _Complex );
 
 // ------------------------------------------------------------
@@ -135,25 +155,30 @@
 // ------------------------------------------------------------
 
-int		?+?( int, int ), 			?-?( int, int );
-long		?+?( long, long ), 	 	  	?-?( long, long );
-unsigned	?+?( unsigned, unsigned ), 	  	?-?( unsigned, unsigned );
-long unsigned	?+?( long unsigned, long unsigned ), 	?-?( long unsigned, long unsigned );
-float		?+?( float, float ), 		  	?-?( float, float );
-double		?+?( double, double ), 		  	?-?( double, double );
-long double	?+?( long double, long double ), 	?-?( long double, long double );
-
-forall( type T ) T *	 		?+?(		    T *,		       ptrdiff_t );
-forall( type T ) T *			?+?(	      ptrdiff_t,		       T * );
-forall( type T ) T *			?-?(		    T *,		       ptrdiff_t );
-forall( type T ) const T *		?+?( const	    T *,		       ptrdiff_t );
-forall( type T ) const T *		?+?(	      ptrdiff_t, const	       T * );
-forall( type T ) const T *		?-?( const	    T *,		       ptrdiff_t );
-forall( type T ) volatile T *		?+?(	   volatile T *,		       ptrdiff_t );
-forall( type T ) volatile T *		?+?(	      ptrdiff_t,	      volatile T * );
-forall( type T ) volatile T *		?-?(	   volatile T *,		       ptrdiff_t );
-forall( type T ) const volatile T *	?+?( const volatile T *,		       ptrdiff_t );
+_Bool			?+?( _Bool, _Bool ),					?-?( _Bool, _Bool );
+signed int		?+?( signed int, signed int ),				?-?( signed int, signed int );
+unsigned int		?+?( unsigned int, unsigned int ),			?-?( unsigned int, unsigned int );
+signed long int		?+?( signed long int, signed long int ),		?-?( signed long int, signed long int );
+unsigned long int	?+?( unsigned long int, unsigned long int ),		?-?( unsigned long int, long unsigned );
+signed long long int	?+?( signed long long int, long long int  signed),	?-?( signed long long int, signed long long int );
+unsigned long long int	?+?( unsigned long long int, unsigned long long int ),	?-?( unsigned long long int, long long unsigned );
+float			?+?( float, float ),					?-?( float, float );
+double			?+?( double, double ),					?-?( double, double );
+long double		?+?( long double, long double ),			?-?( long double, long double );
+float _Complex		?+?( float _Complex, float _Complex ),			?-?( float _Complex, float _Complex );
+double _Complex		?+?( double _Complex, double _Complex ),		?-?( double _Complex, double _Complex );
+long double _Complex	?+?( long double _Complex, long double _Complex ),	?-?( long double _Complex, long double _Complex );
+
+forall( type T ) T *			?+?(		    T *,	  ptrdiff_t );
+forall( type T ) T *			?+?(	      ptrdiff_t,		T * );
+forall( type T ) const T *		?+?( const	    T *,	  ptrdiff_t );
+forall( type T ) const T *		?+?(	      ptrdiff_t, const		T * );
+forall( type T ) volatile T *		?+?(	   volatile T *,	  ptrdiff_t );
+forall( type T ) volatile T *		?+?(	      ptrdiff_t,       volatile T * );
+forall( type T ) const volatile T *	?+?( const volatile T *,	  ptrdiff_t );
 forall( type T ) const volatile T *	?+?(	      ptrdiff_t, const volatile T * );
-forall( type T ) const volatile T *	?-?( const volatile T *,		       ptrdiff_t );
-
+forall( type T ) T *			?-?(		    T *,	  ptrdiff_t );
+forall( type T ) const T *		?-?( const	    T *,	  ptrdiff_t );
+forall( type T ) volatile T *		?-?(	   volatile T *,	  ptrdiff_t );
+forall( type T ) const volatile T *	?-?( const volatile T *,	  ptrdiff_t );
 forall( type T ) ptrdiff_t		?-?( const volatile T *, const volatile T * );
 
@@ -164,8 +189,9 @@
 // ------------------------------------------------------------
 
-int		?<<?( int, int ), 			?>>?( int, int );
-long		?<<?( long, long ), 			?>>?( long, long );
-unsigned	?<<?( unsigned, unsigned ), 		?>>?( unsigned, unsigned );
-long unsigned	?<<?( long unsigned, long unsigned ),	?>>?( long unsigned, long unsigned );
+_Bool			?<<?( _Bool, _Bool ),				?>>?( _Bool, _Bool );
+signed int		?<<?( signed int, signed int ),			?>>?( signed int, signed int );
+unsigned int		?<<?( unsigned int, unsigned int ),		?>>?( unsigned int, unsigned int );
+signed long int		?<<?( signed long int, signed long int ),	?>>?( signed long int, signed long int );
+unsigned long int	?<<?( unsigned long int, long unsigned ),	?>>?( unsigned long int, unsigned long int );
 
 // ------------------------------------------------------------
@@ -175,23 +201,25 @@
 // ------------------------------------------------------------
 
-int	?<?( int, int ), 			?<=?( int, int ),
-    	?>?( int, int ), 			?>=?( int, int );
-int	?<?( long, long ), 			?<=?( long, long ),
-    	?>?( long, long ), 			?>=?( long, long );
-int	?<?( unsigned, unsigned ), 		?<=?( unsigned, unsigned ),
-    	?>?( unsigned, unsigned ), 		?>=?( unsigned, unsigned );
-int	?<?( unsigned long, unsigned long ), 	?<=?( unsigned long, unsigned long ),
-    	?>?( unsigned long, unsigned long ), 	?>=?( unsigned long, unsigned long );
-int	?<?( float, float ), 			?<=?( float, float ),
-    	?>?( float, float ), 			?>=?( float, float );
-int	?<?( double, double ), 			?<=?( double, double ),
-    	?>?( double, double ), 			?>=?( double, double );
-int	?<?( long double, long double ), 	?<=?( long double, long double ),
-    	?>?( long double, long double ), 	?>=?( long double, long double );
-
-forall( dtype DT ) int ?<?(  const volatile DT *, const volatile DT * );
-forall( dtype DT ) int ?>?(  const volatile DT *, const volatile DT * );
-forall( dtype DT ) int ?<=?( const volatile DT *, const volatile DT * );
-forall( dtype DT ) int ?>=?( const volatile DT *, const volatile DT * );
+signed int ?<?( _Bool, _Bool ),				?<=?( _Bool, _Bool ),
+	   ?>?( _Bool, _Bool ),				?>=?( _Bool, _Bool );
+signed int ?<?( signed int, signed int ),		?<=?( signed int, signed int ),
+	   ?>?( signed int, signed int ),		?>=?( signed int, signed int );
+signed int ?<?( unsigned int, unsigned int ),		?<=?( unsigned int, unsigned int ),
+	   ?>?( unsigned int, unsigned int ),		?>=?( unsigned int, unsigned int );
+signed int ?<?( signed long int, signed long int ),	?<=?( signed long int, signed long int ),
+	   ?>?( signed long int, signed long int ),	?>=?( signed long int, signed long int );
+signed int ?<?( unsigned long int, unsigned long int ),	?<=?( unsigned long int, unsigned long int ),
+	   ?>?( unsigned long int, unsigned long int ),	?>=?( unsigned long int, unsigned long int );
+signed int ?<?( float, float ),				?<=?( float, float ),
+	   ?>?( float, float ),				?>=?( float, float );
+signed int ?<?( double, double ),			?<=?( double, double ),
+	   ?>?( double, double ),			?>=?( double, double );
+signed int ?<?( long double, long double ),		?<=?( long double, long double ),
+	   ?>?( long double, long double ),		?>=?( long double, long double );
+
+forall( dtype DT ) signed int ?<?(  const volatile DT *, const volatile DT * );
+forall( dtype DT ) signed int ?>?(  const volatile DT *, const volatile DT * );
+forall( dtype DT ) signed int ?<=?( const volatile DT *, const volatile DT * );
+forall( dtype DT ) signed int ?>=?( const volatile DT *, const volatile DT * );
 
 // ------------------------------------------------------------
@@ -201,37 +229,42 @@
 // ------------------------------------------------------------
 
-int	?==?( int, int ),			?!=?( int, int );
-int	?==?( long, long ),			?!=?( long, long );
-int	?==?( unsigned, unsigned ),		?!=?( unsigned, unsigned );
-int	?==?( unsigned long, unsigned long ),	?!=?( unsigned long, unsigned long );
-int	?==?( float, float ),			?!=?( float, float );
-int	?==?( double, double ),			?!=?( double, double );
-int	?==?( long double, long double ),	?!=?( long double, long double );
-
-forall( dtype DT ) int ?==?(		    DT *,		 DT * );
-forall( dtype DT ) int ?!=?(		    DT *,		 DT * );
-forall( dtype DT ) int ?==?( const	    DT *, const		 DT * );
-forall( dtype DT ) int ?!=?( const	    DT *, const		 DT * );
-forall( dtype DT ) int ?==?(       volatile DT *,       volatile DT * );
-forall( dtype DT ) int ?!=?(       volatile DT *,       volatile DT * );
-forall( dtype DT ) int ?==?( const volatile DT *, const volatile DT * );
-forall( dtype DT ) int ?!=?( const volatile DT *, const volatile DT * );
-forall( ftype FT ) int ?==?( FT *, FT * );
-forall( ftype FT ) int ?!=?( FT *, FT * );
-
-
-forall( dtype DT ) int ?==?( const volatile DT   *, const volatile void * );
-forall( dtype DT ) int ?!=?( const volatile DT   *, const volatile void * );
-forall( dtype DT ) int ?==?( const volatile void *, const volatile DT * );
-forall( dtype DT ) int ?!=?( const volatile void *, const volatile DT * );
-
-forall( dtype DT ) int ?==?( const volatile DT *, forall( dtype DT2 )const DT2 * );
-forall( dtype DT ) int ?!=?( const volatile DT *, forall( dtype DT2 )const DT2 * );
-forall( dtype DT ) int ?==?( forall( dtype DT2 )const DT2 *, const volatile DT * );
-forall( dtype DT ) int ?!=?( forall( dtype DT2 )const DT2 *, const volatile DT * );
-forall( ftype FT ) int ?==?( FT *, forall( ftype FT2 )FT2 * );
-forall( ftype FT ) int ?!=?( FT *, forall( ftype FT2 )FT2 * );
-forall( ftype FT ) int ?==?( forall( ftype FT2 )FT2 *, FT * );
-forall( ftype FT ) int ?!=?( forall( ftype FT2 )FT2 *, FT * );
+signed int ?==?( _Bool, _Bool ),				?!=?( _Bool, _Bool );
+signed int ?==?( signed int, signed int ),			?!=?( signed int, signed int );
+signed int ?==?( unsigned int, unsigned int ),			?!=?( unsigned int, unsigned int );
+signed int ?==?( signed long int, signed long int ),		?!=?( signed long int, signed long int );
+signed int ?==?( unsigned long int, unsigned long int ),	?!=?( unsigned long int, long unsigned );
+signed int ?==?( signed long long int, long long int  signed),	?!=?( signed long long int, signed long long int );
+signed int ?==?( unsigned long long int, unsigned long long int ), ?!=?( unsigned long long int, long long unsigned );
+signed int ?==?( float, float ),				?!=?( float, float );
+signed int ?==?( double, double ),				?!=?( double, double );
+signed int ?==?( long double, long double ),			?!=?( long double, long double );
+signed int ?==?( float _Complex, float _Complex ),		?!=?( float _Complex, float _Complex );
+signed int ?==?( double _Complex, double _Complex ),		?!=?( double _Complex, double _Complex );
+signed int ?==?( long double _Complex, long double _Complex ),	?!=?( long double _Complex, long double _Complex );
+
+forall( dtype DT ) signed int ?==?(		   DT *,		DT * );
+forall( dtype DT ) signed int ?==?( const	   DT *, const		DT * );
+forall( dtype DT ) signed int ?==?(       volatile DT *,       volatile DT * );
+forall( dtype DT ) signed int ?==?( const volatile DT *, const volatile DT * );
+forall( ftype FT ) signed int ?==?( FT *, FT * );
+forall( dtype DT ) signed int ?!=?(		   DT *,		DT * );
+forall( dtype DT ) signed int ?!=?( const	   DT *, const		DT * );
+forall( dtype DT ) signed int ?!=?(       volatile DT *,       volatile DT * );
+forall( dtype DT ) signed int ?!=?( const volatile DT *, const volatile DT * );
+forall( ftype FT ) signed int ?!=?( FT *, FT * );
+
+forall( dtype DT ) signed int ?==?( const volatile DT   *, const volatile void * );
+forall( dtype DT ) signed int ?==?( const volatile void *, const volatile DT * );
+forall( dtype DT ) signed int ?!=?( const volatile DT   *, const volatile void * );
+forall( dtype DT ) signed int ?!=?( const volatile void *, const volatile DT * );
+
+forall( dtype DT ) signed int ?==?( const volatile DT *, forall( dtype DT2 )const DT2 * );
+forall( dtype DT ) signed int ?==?( forall( dtype DT2 )const DT2 *, const volatile DT * );
+forall( ftype FT ) signed int ?==?( FT *, forall( ftype FT2 )FT2 * );
+forall( ftype FT ) signed int ?==?( forall( ftype FT2 )FT2 *, FT * );
+forall( dtype DT ) signed int ?!=?( const volatile DT *, forall( dtype DT2 )const DT2 * );
+forall( dtype DT ) signed int ?!=?( forall( dtype DT2 )const DT2 *, const volatile DT * );
+forall( ftype FT ) signed int ?!=?( FT *, forall( ftype FT2 )FT2 * );
+forall( ftype FT ) signed int ?!=?( forall( ftype FT2 )FT2 *, FT * );
 
 // ------------------------------------------------------------
@@ -241,8 +274,9 @@
 // ------------------------------------------------------------
 
-int		?&?( int, int );
-long		?&?( long, long );
-unsigned	?&?( unsigned, unsigned );
-unsigned long	?&?( unsigned long, unsigned long );
+_Bool			?&?( _Bool, _Bool );
+signed int		?&?( signed int, signed int );
+unsigned int		?&?( unsigned int, unsigned int );
+signed long int		?&?( signed long int, signed long int );
+unsigned long int	?&?( unsigned long int, unsigned long int );
 
 // ------------------------------------------------------------
@@ -252,8 +286,9 @@
 // ------------------------------------------------------------
 
-int		?^?( int, int );
-long		?^?( long, long );
-unsigned	?^?( unsigned, unsigned );
-unsigned long	?^?( unsigned long, unsigned long );
+_Bool			?^?( _Bool, _Bool );
+signed int		?^?( signed int, signed int );
+unsigned int		?^?( unsigned int, unsigned int );
+signed long int		?^?( signed long int, signed long int );
+unsigned long int	?^?( unsigned long int, unsigned long int );
 
 // ------------------------------------------------------------
@@ -263,8 +298,9 @@
 // ------------------------------------------------------------
 
-int		?|?( int, int );
-long		?|?( long, long );
-unsigned	?|?( unsigned, unsigned );
-unsigned long	?|?( unsigned long, unsigned long );
+_Bool			?|?( _Bool, _Bool );
+signed int		?|?( signed int, signed int );
+unsigned int		?|?( unsigned int, unsigned int );
+signed long int		?|?( signed long int, signed long int );
+unsigned long int	?|?( unsigned long int, unsigned long int );
 
 // ------------------------------------------------------------
@@ -277,15 +313,15 @@
 forall( ftype FT ) FT *			?=?( FT * volatile *, FT * );
 
-forall( dtype DT ) DT * 		?=?(		     DT *	   *,			DT * );
-forall( dtype DT ) DT * 		?=?(		     DT * volatile *, 			DT * );
-forall( dtype DT ) const DT * 	   	?=?( const	     DT *	   *,			DT * );
+forall( dtype DT ) DT *			?=?(		     DT *	   *,			DT * );
+forall( dtype DT ) DT *			?=?(		     DT * volatile *,			DT * );
+forall( dtype DT ) const DT *		?=?( const	     DT *	   *,			DT * );
 forall( dtype DT ) const DT *		?=?( const	     DT * volatile *,			DT * );
-forall( dtype DT ) const DT *	    	?=?( const	     DT *	   *, const		DT * );
-forall( dtype DT ) const DT *	   	?=?( const	     DT * volatile *, const		DT * );
-forall( dtype DT ) volatile DT * 	?=?(	   volatile  DT *	   *,			DT * );
+forall( dtype DT ) const DT *		?=?( const	     DT *	   *, const		DT * );
+forall( dtype DT ) const DT *		?=?( const	     DT * volatile *, const		DT * );
+forall( dtype DT ) volatile DT *	?=?(	   volatile  DT *	   *,			DT * );
 forall( dtype DT ) volatile DT *	?=?(	   volatile  DT * volatile *,			DT * );
 forall( dtype DT ) volatile DT *	?=?(	   volatile  DT *	   *,	    volatile	DT * );
 forall( dtype DT ) volatile DT *	?=?(	   volatile  DT * volatile *,	    volatile	DT * );
-	
+
 forall( dtype DT ) const volatile DT *	?=?( const volatile  DT *	   *,			DT * );
 forall( dtype DT ) const volatile DT *  ?=?( const volatile  DT * volatile *,			DT * );
@@ -297,15 +333,15 @@
 forall( dtype DT ) const volatile DT *  ?=?( const volatile  DT * volatile *, const volatile	DT * );
 
-forall( dtype DT ) DT * 		?=?(		     DT *	   *,			void * );
-forall( dtype DT ) DT * 		?=?(		     DT * volatile *, 			void * );
+forall( dtype DT ) DT *			?=?(		     DT *	   *,			void * );
+forall( dtype DT ) DT *			?=?(		     DT * volatile *,			void * );
 forall( dtype DT ) const DT *		?=?( const	     DT *	   *,			void * );
 forall( dtype DT ) const DT *		?=?( const	     DT * volatile *,			void * );
 forall( dtype DT ) const DT *		?=?( const	     DT *	   *, const		void * );
-forall( dtype DT ) const DT *		?=?( const	     DT * volatile *, const	  	void * );
-forall( dtype DT ) volatile DT * 	?=?(	   volatile  DT *	   *,			void * );
+forall( dtype DT ) const DT *		?=?( const	     DT * volatile *, const		void * );
+forall( dtype DT ) volatile DT *	?=?(	   volatile  DT *	   *,			void * );
 forall( dtype DT ) volatile DT *	?=?(	   volatile  DT * volatile *,			void * );
 forall( dtype DT ) volatile DT *	?=?(	   volatile  DT *	   *,	    volatile	void * );
 forall( dtype DT ) volatile DT *	?=?(	   volatile  DT * volatile *,	    volatile	void * );
-	
+
 forall( dtype DT ) const volatile DT *	?=?( const volatile  DT *	   *,			void * );
 forall( dtype DT ) const volatile DT *	?=?( const volatile  DT * volatile *,			void * );
@@ -313,7 +349,7 @@
 forall( dtype DT ) const volatile DT *	?=?( const volatile  DT * volatile *, const		void * );
 forall( dtype DT ) const volatile DT *	?=?( const volatile  DT *	   *,	    volatile	void * );
-forall( dtype DT ) const volatile DT *	?=?( const volatile  DT * volatile *,	    volatile 	void * );
-forall( dtype DT ) const volatile DT *	?=?( const volatile  DT *	   *, const volatile 	void * );
-forall( dtype DT ) const volatile DT *	?=?( const volatile  DT * volatile *, const volatile 	void * );
+forall( dtype DT ) const volatile DT *	?=?( const volatile  DT * volatile *,	    volatile	void * );
+forall( dtype DT ) const volatile DT *	?=?( const volatile  DT *	   *, const volatile	void * );
+forall( dtype DT ) const volatile DT *	?=?( const volatile  DT * volatile *, const volatile	void * );
 
 forall( dtype DT ) void *		 ?=?(		     void *	     *,			DT * );
@@ -325,6 +361,6 @@
 forall( dtype DT ) volatile void *	 ?=?(	    volatile void *	     *,			DT * );
 forall( dtype DT ) volatile void *	 ?=?(	    volatile void * volatile *,			DT * );
-forall( dtype DT ) volatile void *   	 ?=?(	    volatile void *	     *,	      volatile	DT * );
-forall( dtype DT ) volatile void *   	 ?=?(	    volatile void * volatile *,	      volatile	DT * );
+forall( dtype DT ) volatile void *	 ?=?(	    volatile void *	     *,	      volatile	DT * );
+forall( dtype DT ) volatile void *	 ?=?(	    volatile void * volatile *,	      volatile	DT * );
 forall( dtype DT ) const volatile void * ?=?( const volatile void *	     *,			DT * );
 forall( dtype DT ) const volatile void * ?=?( const volatile void * volatile *,			DT * );
@@ -364,330 +400,200 @@
 forall( dtype DT ) const volatile DT *	?=?( const volatile DT * volatile *, forall( dtype DT2 ) const DT2 * );
 
-forall( ftype FT ) FT * 		?=?( FT *	   *, forall( ftype FT2 ) FT2 * );
+forall( ftype FT ) FT *			?=?( FT *	   *, forall( ftype FT2 ) FT2 * );
 forall( ftype FT ) FT *			?=?( FT * volatile *, forall( ftype FT2 ) FT2 * );
 
-forall( type T ) T * 			?+=?(		     T *	  *, ptrdiff_t );
+forall( type T ) T *			?+=?(		     T *	  *, ptrdiff_t );
 forall( type T ) T *			?+=?(		     T * volatile *, ptrdiff_t );
+forall( type T ) const T *		?+=?( const	     T *	  *, ptrdiff_t );
+forall( type T ) const T *		?+=?( const	     T * volatile *, ptrdiff_t );
+forall( type T ) volatile T *		?+=?(	    volatile T *	  *, ptrdiff_t );
+forall( type T ) volatile T *		?+=?(	    volatile T * volatile *, ptrdiff_t );
+forall( type T ) const volatile T *	?+=?( const volatile T *	  *, ptrdiff_t );
+forall( type T ) const volatile T *	?+=?( const volatile T * volatile *, ptrdiff_t );
 forall( type T ) T *			?-=?(		     T *	  *, ptrdiff_t );
 forall( type T ) T *			?-=?(		     T * volatile *, ptrdiff_t );
-forall( type T ) const T * 		?+=?( const	     T *	  *, ptrdiff_t );
-forall( type T ) const T *		?+=?( const	     T * volatile *, ptrdiff_t );
 forall( type T ) const T *		?-=?( const	     T *	  *, ptrdiff_t );
 forall( type T ) const T *		?-=?( const	     T * volatile *, ptrdiff_t );
-forall( type T ) volatile T *		?+=?(	    volatile T *	  *, ptrdiff_t );
-forall( type T ) volatile T *		?+=?(	    volatile T * volatile *, ptrdiff_t );
 forall( type T ) volatile T *		?-=?(	    volatile T *	  *, ptrdiff_t );
 forall( type T ) volatile T *		?-=?(	    volatile T * volatile *, ptrdiff_t );
-forall( type T ) const volatile T *	?+=?( const volatile T *	  *, ptrdiff_t );
-forall( type T ) const volatile T *	?+=?( const volatile T * volatile *, ptrdiff_t );
 forall( type T ) const volatile T *	?-=?( const volatile T *	  *, ptrdiff_t );
 forall( type T ) const volatile T *	?-=?( const volatile T * volatile *, ptrdiff_t );
 
-_Bool			?=?(	      _Bool *, _Bool ),
-    			?=?( volatile _Bool *, _Bool );
-char			?=?(	      char *, char ),
-    			?=?( volatile char *, char );
-signed char		?=?(	      signed char *, signed char ),
-    			?=?( volatile signed char *, signed char );
-unsigned char		?=?(	      unsigned char *, unsigned char ),
-    			?=?( volatile unsigned char *, unsigned char );
-short			?=?(	      short *, short ),
-    			?=?( volatile short *, short );
-unsigned short		?=?(	      unsigned short *, unsigned short ),
-    			?=?( volatile unsigned short *, unsigned short );
-int			?=?(	      int *, int ),
-    			?=?( volatile int *, int );
-unsigned		?=?(	      unsigned *, unsigned ),
-    			?=?( volatile unsigned *, unsigned );
-long			?=?(	      long *, long ),
-    			?=?( volatile long *, long );
-unsigned long		?=?(	      unsigned long *, unsigned long ),
-    			?=?( volatile unsigned long *, unsigned long );
-long long		?=?(	      long long *, long long ),
-    			?=?( volatile long long *, long long );
-unsigned long long	?=?(	      unsigned long long *, unsigned long long ),
-    			?=?( volatile unsigned long long *, unsigned long long );
-
-_Bool			?*=?(	       _Bool *, _Bool ),
-    			?*=?( volatile _Bool *, _Bool );
-char			?*=?(	       char *, char ),
-    			?*=?( volatile char *, char );
-signed char		?*=?(	       signed char *, signed char ),
-    			?*=?( volatile signed char *, signed char );
-unsigned char		?*=?(	       unsigned char *, unsigned char ),
-    			?*=?( volatile unsigned char *, unsigned char );
-short			?*=?(	       short *, short ),
-    			?*=?( volatile short *, short );
-unsigned short		?*=?(	       unsigned short *, unsigned short ),
-    			?*=?( volatile unsigned short *, unsigned short );
-int			?*=?(	       int *, int ),
-    			?*=?( volatile int *, int );
-unsigned		?*=?(	       unsigned *, unsigned ),
-    			?*=?( volatile unsigned *, unsigned );
-long			?*=?(	       long *, long ),
-    			?*=?( volatile long *, long );
-unsigned long		?*=?(	       unsigned long *, unsigned long ),
-    			?*=?( volatile unsigned long *, unsigned long );
-long long		?*=?(	       long long *, long long ),
-    			?*=?( volatile long long *, long long );
-unsigned long long	?*=?(	       unsigned long long *, unsigned long long ),
-    			?*=?( volatile unsigned long long *, unsigned long long );
-
-_Bool			?/=?(	       _Bool *, _Bool ),
-    			?/=?( volatile _Bool *, _Bool );
-char			?/=?(	       char *, char ),
-    			?/=?( volatile char *, char );
-signed char		?/=?(	       signed char *, signed char ),
-    			?/=?( volatile signed char *, signed char );
-unsigned char		?/=?(	       unsigned char *, unsigned char ),
-    			?/=?( volatile unsigned char *, unsigned char );
-short			?/=?(	       short *, short ),
-    			?/=?( volatile short *, short );
-unsigned short		?/=?(	       unsigned short *, unsigned short ),
-    			?/=?( volatile unsigned short *, unsigned short );
-int			?/=?(	       int *, int ),
-    			?/=?( volatile int *, int );
-unsigned		?/=?(	       unsigned *, unsigned ),
-    			?/=?( volatile unsigned *, unsigned );
-long			?/=?(	       long *, long ),
-    			?/=?( volatile long *, long );
-unsigned long		?/=?(	       unsigned long *, unsigned long ),
-    			?/=?( volatile unsigned long *, unsigned long );
-long long		?/=?(	       long long *, long long ),
-    			?/=?( volatile long long *, long long );
-unsigned long long	?/=?(	       unsigned long long *, unsigned long long ),
-    			?/=?( volatile unsigned long long *, unsigned long long );
-
-_Bool			?%=?(	       _Bool *, _Bool ),
-    			?%=?( volatile _Bool *, _Bool );
-char			?%=?(	       char *, char ),
-    			?%=?( volatile char *, char );
-signed char		?%=?(	       signed char *, signed char ),
-    			?%=?( volatile signed char *, signed char );
-unsigned char		?%=?(	       unsigned char *, unsigned char ),
-    			?%=?( volatile unsigned char *, unsigned char );
-short			?%=?(	       short *, short ),
-    			?%=?( volatile short *, short );
-unsigned short		?%=?(	       unsigned short *, unsigned short ),
-    			?%=?( volatile unsigned short *, unsigned short );
-int			?%=?(	       int *, int ),
-    			?%=?( volatile int *, int );
-unsigned		?%=?(	       unsigned *, unsigned ),
-    			?%=?( volatile unsigned *, unsigned );
-long			?%=?(	       long *, long ),
-    			?%=?( volatile long *, long );
-unsigned long		?%=?(	       unsigned long *, unsigned long ),
-    			?%=?( volatile unsigned long *, unsigned long );
-long long		?%=?(	       long long *, long long ),
-    			?%=?( volatile long long *, long long );
-unsigned long long	?%=?(	       unsigned long long *, unsigned long long ),
-    			?%=?( volatile unsigned long long *, unsigned long long );
-
-_Bool			?+=?(	       _Bool *, _Bool ),
-    			?+=?( volatile _Bool *, _Bool );
-char			?+=?(	       char *, char ),
-    			?+=?( volatile char *, char );
-signed char		?+=?(	       signed char *, signed char ),
-    			?+=?( volatile signed char *, signed char );
-unsigned char		?+=?(	       unsigned char *, unsigned char ),
-    			?+=?( volatile unsigned char *, unsigned char );
-short			?+=?(	       short *, short ),
-    			?+=?( volatile short *, short );
-unsigned short		?+=?(	       unsigned short *, unsigned short ),
-    			?+=?( volatile unsigned short *, unsigned short );
-int			?+=?(	       int *, int ),
-    			?+=?( volatile int *, int );
-unsigned		?+=?(	       unsigned *, unsigned ),
-    			?+=?( volatile unsigned *, unsigned );
-long			?+=?(	       long *, long ),
-    			?+=?( volatile long *, long );
-unsigned long		?+=?(	       unsigned long *, unsigned long ),
-    			?+=?( volatile unsigned long *, unsigned long );
-long long		?+=?(	       long long *, long long ),
-    			?+=?( volatile long long *, long long );
-unsigned long long	?+=?(	       unsigned long long *, unsigned long long ),
-    			?+=?( volatile unsigned long long *, unsigned long long );
-
-_Bool			?-=?(	       _Bool *, _Bool ),
-    			?-=?( volatile _Bool *, _Bool );
-char			?-=?(	       char *, char ),
-    			?-=?( volatile char *, char );
-signed char		?-=?(	       signed char *, signed char ),
-    			?-=?( volatile signed char *, signed char );
-unsigned char		?-=?(	       unsigned char *, unsigned char ),
-    			?-=?( volatile unsigned char *, unsigned char );
-short			?-=?(	       short *, short ),
-    			?-=?( volatile short *, short );
-unsigned short		?-=?(	       unsigned short *, unsigned short ),
-    			?-=?( volatile unsigned short *, unsigned short );
-int			?-=?(	       int *, int ),
-    			?-=?( volatile int *, int );
-unsigned		?-=?(	       unsigned *, unsigned ),
-    			?-=?( volatile unsigned *, unsigned );
-long			?-=?(	       long *, long ),
-    			?-=?( volatile long *, long );
-unsigned long		?-=?(	       unsigned long *, unsigned long ),
-    			?-=?( volatile unsigned long *, unsigned long );
-long long		?-=?(	       long long *, long long ),
-    			?-=?( volatile long long *, long long );
-unsigned long long	?-=?(	       unsigned long long *, unsigned long long ),
-    			?-=?( volatile unsigned long long *, unsigned long long );
-
-_Bool			?<<=?(	        _Bool *, _Bool ),
-    			?<<=?( volatile _Bool *, _Bool );
-char			?<<=?(	        char *, char ),
-    			?<<=?( volatile char *, char );
-signed char		?<<=?(	        signed char *, signed char ),
-    			?<<=?( volatile signed char *, signed char );
-unsigned char		?<<=?(	        unsigned char *, unsigned char ),
-    			?<<=?( volatile unsigned char *, unsigned char );
-short			?<<=?(	        short *, short ),
-    			?<<=?( volatile short *, short );
-unsigned short		?<<=?(	        unsigned short *, unsigned short ),
-    			?<<=?( volatile unsigned short *, unsigned short );
-int			?<<=?(	        int *, int ),
-    			?<<=?( volatile int *, int );
-unsigned		?<<=?(	        unsigned *, unsigned ),
-    			?<<=?( volatile unsigned *, unsigned );
-long			?<<=?(	        long *, long ),
-    			?<<=?( volatile long *, long );
-unsigned long		?<<=?(	        unsigned long *, unsigned long ),
-    			?<<=?( volatile unsigned long *, unsigned long );
-long long		?<<=?(	        long long *, long long ),
-    			?<<=?( volatile long long *, long long );
-unsigned long long	?<<=?(	        unsigned long long *, unsigned long long ),
-    			?<<=?( volatile unsigned long long *, unsigned long long );
-
-_Bool			?>>=?(	        _Bool *, _Bool ),
-    			?>>=?( volatile _Bool *, _Bool );
-char			?>>=?(	        char *, char ),
-    			?>>=?( volatile char *, char );
-signed char		?>>=?(	        signed char *, signed char ),
-    			?>>=?( volatile signed char *, signed char );
-unsigned char		?>>=?(	        unsigned char *, unsigned char ),
-    			?>>=?( volatile unsigned char *, unsigned char );
-short			?>>=?(	        short *, short ),
-    			?>>=?( volatile short *, short );
-unsigned short		?>>=?(	        unsigned short *, unsigned short ),
-    			?>>=?( volatile unsigned short *, unsigned short );
-int			?>>=?(	        int *, int ),
-    			?>>=?( volatile int *, int );
-unsigned		?>>=?(	        unsigned *, unsigned ),
-    			?>>=?( volatile unsigned *, unsigned );
-long			?>>=?(	        long *, long ),
-    			?>>=?( volatile long *, long );
-unsigned long		?>>=?(	        unsigned long *, unsigned long ),
-    			?>>=?( volatile unsigned long *, unsigned long );
-long long		?>>=?(	        long long *, long long ),
-    			?>>=?( volatile long long *, long long );
-unsigned long long	?>>=?(	        unsigned long long *, unsigned long long ),
-    			?>>=?( volatile unsigned long long *, unsigned long long );
-
-_Bool			?&=?(	       _Bool *, _Bool ),
-    			?&=?( volatile _Bool *, _Bool );
-char			?&=?(	       char *, char ),
-    			?&=?( volatile char *, char );
-signed char		?&=?(	       signed char *, signed char ),
-    			?&=?( volatile signed char *, signed char );
-unsigned char		?&=?(	       unsigned char *, unsigned char ),
-    			?&=?( volatile unsigned char *, unsigned char );
-short			?&=?(	       short *, short ),
-    			?&=?( volatile short *, short );
-unsigned short		?&=?(	       unsigned short *, unsigned short ),
-    			?&=?( volatile unsigned short *, unsigned short );
-int			?&=?(	       int *, int ),
-    			?&=?( volatile int *, int );
-unsigned		?&=?(	       unsigned *, unsigned ),
-    			?&=?( volatile unsigned *, unsigned );
-long			?&=?(	       long *, long ),
-    			?&=?( volatile long *, long );
-unsigned long		?&=?(	       unsigned long *, unsigned long ),
-    			?&=?( volatile unsigned long *, unsigned long );
-long long		?&=?(	       long long *, long long ),
-    			?&=?( volatile long long *, long long );
-unsigned long long	?&=?(	       unsigned long long *, unsigned long long ),
-    			?&=?( volatile unsigned long long *, unsigned long long );
-
-_Bool			?|=?(	       _Bool *, _Bool ),
-    			?|=?( volatile _Bool *, _Bool );
-char			?|=?(	       char *, char ),
-    			?|=?( volatile char *, char );
-signed char		?|=?(	       signed char *, signed char ),
-    			?|=?( volatile signed char *, signed char );
-unsigned char		?|=?(	       unsigned char *, unsigned char ),
-    			?|=?( volatile unsigned char *, unsigned char );
-short			?|=?(	       short *, short ),
-    			?|=?( volatile short *, short );
-unsigned short		?|=?(	       unsigned short *, unsigned short ),
-    			?|=?( volatile unsigned short *, unsigned short );
-int			?|=?(	       int *, int ),
-    			?|=?( volatile int *, int );
-unsigned		?|=?(	       unsigned *, unsigned ),
-    			?|=?( volatile unsigned *, unsigned );
-long			?|=?(	       long *, long ),
-    			?|=?( volatile long *, long );
-unsigned long		?|=?(	       unsigned long *, unsigned long ),
-    			?|=?( volatile unsigned long *, unsigned long );
-long long		?|=?(	       long long *, long long ),
-    			?|=?( volatile long long *, long long );
-unsigned long long	?|=?(	       unsigned long long *, unsigned long long ),
-    			?|=?( volatile unsigned long long *, unsigned long long );
-
-_Bool			?^=?(	       _Bool *, _Bool ),
-    			?^=?( volatile _Bool *, _Bool );
-char			?^=?(	       char *, char ),
-    			?^=?( volatile char *, char );
-signed char		?^=?(	       signed char *, signed char ),
-    			?^=?( volatile signed char *, signed char );
-unsigned char		?^=?(	       unsigned char *, unsigned char ),
-    			?^=?( volatile unsigned char *, unsigned char );
-short			?^=?(	       short *, short ),
-    			?^=?( volatile short *, short );
-unsigned short		?^=?(	       unsigned short *, unsigned short ),
-    			?^=?( volatile unsigned short *, unsigned short );
-int			?^=?(	       int *, int ),
-    			?^=?( volatile int *, int );
-unsigned		?^=?(	       unsigned *, unsigned ),
-    			?^=?( volatile unsigned *, unsigned );
-long			?^=?(	       long *, long ),
-    			?^=?( volatile long *, long );
-unsigned long		?^=?(	       unsigned long *, unsigned long ),
-    			?^=?( volatile unsigned long *, unsigned long );
-long long		?^=?(	       long long *, long long ),
-    			?^=?( volatile long long *, long long );
-unsigned long long	?^=?(	       unsigned long long *, unsigned long long ),
-    			?^=?( volatile unsigned long long *, unsigned long long );
-
-
-float			?=?(	       float *, float ),
-    			?=?(  volatile float *, float ),
-    			?*=?(	       float *, float ),
-    			?*=?( volatile float *, float ),
-    			?/=?(	       float *, float ),
-    			?/=?( volatile float *, float ),
-    			?+=?(	       float *, float ),
-    			?+=?( volatile float *, float ),
-    			?-=?(	       float *, float ),
-    			?-=?( volatile float *, float );
-
-double			?=?(	       double *, double ),
-    			?=?(  volatile double *, double ),
-    			?*=?(	       double *, double ),
-    			?*=?( volatile double *, double ),
-    			?/=?(	       double *, double ),
-    			?/=?( volatile double *, double ),
-    			?+=?(	       double *, double ),
-    			?+=?( volatile double *, double ),
-    			?-=?(	       double *, double ),
-    			?-=?( volatile double *, double );
-
-long double		?=?(	       long double *, long double ),
-    			?=?(  volatile long double *, long double ),
-    			?*=?(	       long double *, long double ),
-    			?*=?( volatile long double *, long double ),
-    			?/=?(	       long double *, long double ),
-    			?/=?( volatile long double *, long double ),
-    			?+=?(	       long double *, long double ),
-    			?+=?( volatile long double *, long double ),
-    			?-=?(	       long double *, long double ),
-    			?-=?( volatile long double *, long double );
+_Bool			?=?( _Bool *, _Bool ),					?=?( volatile _Bool *, _Bool );
+char			?=?( char *, char ),					?=?( volatile char *, char );
+char signed		?=?( char signed *, char signed ),			?=?( volatile char signed *, char signed );
+char unsigned		?=?( char unsigned *, char unsigned ),			?=?( volatile char unsigned *, char unsigned );
+int short		?=?( int short *, int short ),				?=?( volatile int short *, int short );
+int short unsigned	?=?( int short unsigned *, int short unsigned ),	?=?( volatile int short unsigned *, int short unsigned );
+signed int		?=?( signed int *, signed int ),			?=?( volatile signed int *, signed int );
+unsigned int		?=?( unsigned *, unsigned ),				?=?( volatile unsigned *, unsigned );
+signed long int		?=?( signed long int *, signed long int ),		?=?( volatile signed long int *, signed long int );
+unsigned long int	?=?( unsigned long int *, unsigned long int ),		?=?( volatile unsigned long int *, unsigned long int );
+signed long long int	?=?( signed long long int *, signed long long int ),	?=?( volatile signed long long int *, signed long long int );
+unsigned long long int	?=?( unsigned long long int *, unsigned long long int ), ?=?( volatile unsigned long long int *, unsigned long long int );
+
+_Bool			?*=?( _Bool *, _Bool ),					?*=?( volatile _Bool *, _Bool );
+char			?*=?( char *, char ),					?*=?( volatile char *, char );
+char signed		?*=?( char signed *, char signed ),			?*=?( volatile char signed *, char signed );
+char unsigned		?*=?( char unsigned *, char unsigned ),			?*=?( volatile char unsigned *, char unsigned );
+int short		?*=?( int short *, int short ),				?*=?( volatile int short *, int short );
+int short unsigned	?*=?( int short unsigned *, int short unsigned ),	?*=?( volatile int short unsigned *, int short unsigned );
+signed int		?*=?( signed int *, signed int ),			?*=?( volatile signed int *, signed int );
+unsigned int		?*=?( unsigned *, unsigned ),				?*=?( volatile unsigned *, unsigned );
+signed long int		?*=?( signed long int *, signed long int ),		?*=?( volatile signed long int *, signed long int );
+unsigned long int	?*=?( unsigned long int *, unsigned long int ),		?*=?( volatile unsigned long int *, unsigned long int );
+signed long long int	?*=?( signed long long int *, signed long long int ),	?*=?( volatile signed long long int *, signed long long int );
+unsigned long long int	?*=?( unsigned long long int *, unsigned long long int ), ?*=?( volatile unsigned long long int *, unsigned long long int );
+
+_Bool			?/=?( _Bool *, _Bool ),					?/=?( volatile _Bool *, _Bool );
+char			?/=?( char *, char ),					?/=?( volatile char *, char );
+char signed		?/=?( char signed *, char signed ),			?/=?( volatile char signed *, char signed );
+char unsigned		?/=?( char unsigned *, char unsigned ),			?/=?( volatile char unsigned *, char unsigned );
+int short		?/=?( int short *, int short ),				?/=?( volatile int short *, int short );
+int short unsigned	?/=?( int short unsigned *, int short unsigned ),	?/=?( volatile int short unsigned *, int short unsigned );
+signed int		?/=?( signed int *, signed int ),			?/=?( volatile signed int *, signed int );
+unsigned int		?/=?( unsigned *, unsigned ),				?/=?( volatile unsigned *, unsigned );
+signed long int		?/=?( signed long int *, signed long int ),		?/=?( volatile signed long int *, signed long int );
+unsigned long int	?/=?( unsigned long int *, unsigned long int ),		?/=?( volatile unsigned long int *, unsigned long int );
+signed long long int	?/=?( signed long long int *, signed long long int ),	?/=?( volatile signed long long int *, signed long long int );
+unsigned long long int	?/=?( unsigned long long int *, unsigned long long int ), ?/=?( volatile unsigned long long int *, unsigned long long int );
+
+_Bool			?%=?( _Bool *, _Bool ),					?%=?( volatile _Bool *, _Bool );
+char			?%=?( char *, char ),					?%=?( volatile char *, char );
+char signed		?%=?( char signed *, char signed ),			?%=?( volatile char signed *, char signed );
+char unsigned		?%=?( char unsigned *, char unsigned ),			?%=?( volatile char unsigned *, char unsigned );
+int short		?%=?( int short *, int short ),				?%=?( volatile int short *, int short );
+int short unsigned	?%=?( int short unsigned *, int short unsigned ),	?%=?( volatile int short unsigned *, int short unsigned );
+signed int		?%=?( signed int *, signed int ),			?%=?( volatile signed int *, signed int );
+unsigned int		?%=?( unsigned *, unsigned ),				?%=?( volatile unsigned *, unsigned );
+signed long int		?%=?( signed long int *, signed long int ),		?%=?( volatile signed long int *, signed long int );
+unsigned long int	?%=?( unsigned long int *, unsigned long int ),		?%=?( volatile unsigned long int *, unsigned long int );
+signed long long int	?%=?( signed long long int *, signed long long int ),	?%=?( volatile signed long long int *, signed long long int );
+unsigned long long int	?%=?( unsigned long long int *, unsigned long long int ), ?%=?( volatile unsigned long long int *, unsigned long long int );
+
+_Bool			?+=?( _Bool *, _Bool ),					?+=?( volatile _Bool *, _Bool );
+char			?+=?( char *, char ),					?+=?( volatile char *, char );
+char signed		?+=?( char signed *, char signed ),			?+=?( volatile char signed *, char signed );
+char unsigned		?+=?( char unsigned *, char unsigned ),			?+=?( volatile char unsigned *, char unsigned );
+int short		?+=?( int short *, int short ),				?+=?( volatile int short *, int short );
+int short unsigned	?+=?( int short unsigned *, int short unsigned ),	?+=?( volatile int short unsigned *, int short unsigned );
+signed int		?+=?( signed int *, signed int ),			?+=?( volatile signed int *, signed int );
+unsigned int		?+=?( unsigned *, unsigned ),				?+=?( volatile unsigned *, unsigned );
+signed long int		?+=?( signed long int *, signed long int ),		?+=?( volatile signed long int *, signed long int );
+unsigned long int	?+=?( unsigned long int *, unsigned long int ),		?+=?( volatile unsigned long int *, unsigned long int );
+signed long long int	?+=?( signed long long int *, signed long long int ),	?+=?( volatile signed long long int *, signed long long int );
+unsigned long long int	?+=?( unsigned long long int *, unsigned long long int ), ?+=?( volatile unsigned long long int *, unsigned long long int );
+
+_Bool			?-=?( _Bool *, _Bool ),					?-=?( volatile _Bool *, _Bool );
+char			?-=?( char *, char ),					?-=?( volatile char *, char );
+char signed		?-=?( char signed *, char signed ),			?-=?( volatile char signed *, char signed );
+char unsigned		?-=?( char unsigned *, char unsigned ),			?-=?( volatile char unsigned *, char unsigned );
+int short		?-=?( int short *, int short ),				?-=?( volatile int short *, int short );
+int short unsigned	?-=?( int short unsigned *, int short unsigned ),	?-=?( volatile int short unsigned *, int short unsigned );
+signed int		?-=?( signed int *, signed int ),			?-=?( volatile signed int *, signed int );
+unsigned int		?-=?( unsigned *, unsigned ),				?-=?( volatile unsigned *, unsigned );
+signed long int		?-=?( signed long int *, signed long int ),		?-=?( volatile signed long int *, signed long int );
+unsigned long int	?-=?( unsigned long int *, unsigned long int ),		?-=?( volatile unsigned long int *, unsigned long int );
+signed long long int	?-=?( signed long long int *, signed long long int ),	?-=?( volatile signed long long int *, signed long long int );
+unsigned long long int	?-=?( unsigned long long int *, unsigned long long int ), ?-=?( volatile unsigned long long int *, unsigned long long int );
+
+_Bool			?<<=?( _Bool *, _Bool ),				?<<=?( volatile _Bool *, _Bool );
+char			?<<=?( char *, char ),					?<<=?( volatile char *, char );
+char signed		?<<=?( char signed *, char signed ),			?<<=?( volatile char signed *, char signed );
+char unsigned		?<<=?( char unsigned *, char unsigned ),		?<<=?( volatile char unsigned *, char unsigned );
+int short		?<<=?( int short *, int short ),			?<<=?( volatile int short *, int short );
+int short unsigned	?<<=?( int short unsigned *, int short unsigned ),	?<<=?( volatile int short unsigned *, int short unsigned );
+signed int		?<<=?( signed int *, signed int ),			?<<=?( volatile signed int *, signed int );
+unsigned int		?<<=?( unsigned *, unsigned ),				?<<=?( volatile unsigned *, unsigned );
+signed long int		?<<=?( signed long int *, signed long int ),		?<<=?( volatile signed long int *, signed long int );
+unsigned long int	?<<=?( unsigned long int *, unsigned long int ),	?<<=?( volatile unsigned long int *, unsigned long int );
+signed long long int	?<<=?( signed long long int *, signed long long int ),	?<<=?( volatile signed long long int *, signed long long int );
+unsigned long long int	?<<=?( unsigned long long int *, unsigned long long int ), ?<<=?( volatile unsigned long long int *, unsigned long long int );
+
+_Bool			?>>=?( _Bool *, _Bool ),				?>>=?( volatile _Bool *, _Bool );
+char			?>>=?( char *, char ),					?>>=?( volatile char *, char );
+char signed		?>>=?( char signed *, char signed ),			?>>=?( volatile char signed *, char signed );
+char unsigned		?>>=?( char unsigned *, char unsigned ),		?>>=?( volatile char unsigned *, char unsigned );
+int short		?>>=?( int short *, int short ),			?>>=?( volatile int short *, int short );
+int short unsigned	?>>=?( int short unsigned *, int short unsigned ),	?>>=?( volatile int short unsigned *, int short unsigned );
+signed int		?>>=?( signed int *, signed int ),			?>>=?( volatile signed int *, signed int );
+unsigned int		?>>=?( unsigned *, unsigned ),				?>>=?( volatile unsigned *, unsigned );
+signed long int		?>>=?( signed long int *, signed long int ),		?>>=?( volatile signed long int *, signed long int );
+unsigned long int	?>>=?( unsigned long int *, unsigned long int ),	?>>=?( volatile unsigned long int *, unsigned long int );
+signed long long int	?>>=?( signed long long int *, signed long long int ),	?>>=?( volatile signed long long int *, signed long long int );
+unsigned long long int	?>>=?( unsigned long long int *, unsigned long long int ), ?>>=?( volatile unsigned long long int *, unsigned long long int );
+
+_Bool			?&=?( _Bool *, _Bool ),					?&=?( volatile _Bool *, _Bool );
+char			?&=?( char *, char ),					?&=?( volatile char *, char );
+char signed		?&=?( char signed *, char signed ),			?&=?( volatile char signed *, char signed );
+char unsigned		?&=?( char unsigned *, char unsigned ),			?&=?( volatile char unsigned *, char unsigned );
+int short		?&=?( int short *, int short ),				?&=?( volatile int short *, int short );
+int short unsigned	?&=?( int short unsigned *, int short unsigned ),	?&=?( volatile int short unsigned *, int short unsigned );
+signed int		?&=?( signed int *, signed int ),			?&=?( volatile signed int *, signed int );
+unsigned int		?&=?( unsigned *, unsigned ),				?&=?( volatile unsigned *, unsigned );
+signed long int		?&=?( signed long int *, signed long int ),		?&=?( volatile signed long int *, signed long int );
+unsigned long int	?&=?( unsigned long int *, unsigned long int ),		?&=?( volatile unsigned long int *, unsigned long int );
+signed long long int	?&=?( signed long long int *, signed long long int ),	?&=?( volatile signed long long int *, signed long long int );
+unsigned long long int	?&=?( unsigned long long int *, unsigned long long int ), ?&=?( volatile unsigned long long int *, unsigned long long int );
+
+_Bool			?|=?( _Bool *, _Bool ),					?|=?( volatile _Bool *, _Bool );
+char			?|=?( char *, char ),					?|=?( volatile char *, char );
+char signed		?|=?( char signed *, char signed ),			?|=?( volatile char signed *, char signed );
+char unsigned		?|=?( char unsigned *, char unsigned ),			?|=?( volatile char unsigned *, char unsigned );
+int short		?|=?( int short *, int short ),				?|=?( volatile int short *, int short );
+int short unsigned	?|=?( int short unsigned *, int short unsigned ),	?|=?( volatile int short unsigned *, int short unsigned );
+signed int		?|=?( signed int *, signed int ),			?|=?( volatile signed int *, signed int );
+unsigned int		?|=?( unsigned *, unsigned ),				?|=?( volatile unsigned *, unsigned );
+signed long int		?|=?( signed long int *, signed long int ),		?|=?( volatile signed long int *, signed long int );
+unsigned long int	?|=?( unsigned long int *, unsigned long int ),		?|=?( volatile unsigned long int *, unsigned long int );
+signed long long int	?|=?( signed long long int *, signed long long int ),	?|=?( volatile signed long long int *, signed long long int );
+unsigned long long int	?|=?( unsigned long long int *, unsigned long long int ), ?|=?( volatile unsigned long long int *, unsigned long long int );
+
+_Bool			?^=?( _Bool *, _Bool ),					?^=?( volatile _Bool *, _Bool );
+char			?^=?( char *, char ),					?^=?( volatile char *, char );
+char signed		?^=?( char signed *, char signed ),			?^=?( volatile char signed *, char signed );
+char unsigned		?^=?( char unsigned *, char unsigned ),			?^=?( volatile char unsigned *, char unsigned );
+int short		?^=?( int short *, int short ),				?^=?( volatile int short *, int short );
+int short unsigned	?^=?( int short unsigned *, int short unsigned ),	?^=?( volatile int short unsigned *, int short unsigned );
+signed int		?^=?( signed int *, signed int ),			?^=?( volatile signed int *, signed int );
+unsigned int		?^=?( unsigned *, unsigned ),				?^=?( volatile unsigned *, unsigned );
+signed long int		?^=?( signed long int *, signed long int ),		?^=?( volatile signed long int *, signed long int );
+unsigned long int	?^=?( unsigned long int *, unsigned long int ),		?^=?( volatile unsigned long int *, unsigned long int );
+signed long long int	?^=?( signed long long int *, signed long long int ),	?^=?( volatile signed long long int *, signed long long int );
+unsigned long long int	?^=?( unsigned long long int *, unsigned long long int ), ?^=?( volatile unsigned long long int *, unsigned long long int );
+
+float			?=?(  float *, float ), ?=?(  volatile float *, float ),
+			?*=?( float *, float ), ?*=?( volatile float *, float ),
+			?/=?( float *, float ), ?/=?( volatile float *, float ),
+			?+=?( float *, float ), ?+=?( volatile float *, float ),
+			?-=?( float *, float ), ?-=?( volatile float *, float );
+
+double			?=?(  double *, double ), ?=?(  volatile double *, double ),
+			?*=?( double *, double ), ?*=?( volatile double *, double ),
+			?/=?( double *, double ), ?/=?( volatile double *, double ),
+			?+=?( double *, double ), ?+=?( volatile double *, double ),
+			?-=?( double *, double ), ?-=?( volatile double *, double );
+
+long double		?=?(  long double *, long double ), ?=?(  volatile long double *, long double ),
+			?*=?( long double *, long double ), ?*=?( volatile long double *, long double ),
+			?/=?( long double *, long double ), ?/=?( volatile long double *, long double ),
+			?+=?( long double *, long double ), ?+=?( volatile long double *, long double ),
+			?-=?( long double *, long double ), ?-=?( volatile long double *, long double );
+
+float _Complex		?=?(  float _Complex *, float _Complex ), ?=?(  volatile float _Complex *, float _Complex ),
+			?*=?( float _Complex *, float _Complex ), ?*=?( volatile float _Complex *, float _Complex ),
+			?/=?( float _Complex *, float _Complex ), ?/=?( volatile float _Complex *, float _Complex ),
+			?+=?( float _Complex *, float _Complex ), ?+=?( volatile float _Complex *, float _Complex ),
+			?-=?( float _Complex *, float _Complex ), ?-=?( volatile float _Complex *, float _Complex );
+
+double _Complex		?=?(  double _Complex *, double _Complex ), ?=?(  volatile double _Complex *, double _Complex ),
+			?*=?( double _Complex *, double _Complex ), ?*=?( volatile double _Complex *, double _Complex ),
+			?/=?( double _Complex *, double _Complex ), ?/=?( volatile double _Complex *, double _Complex ),
+			?+=?( double _Complex *, double _Complex ), ?+=?( volatile double _Complex *, double _Complex ),
+			?-=?( double _Complex *, double _Complex ), ?-=?( volatile double _Complex *, double _Complex );
+
+long double _Complex	?=?(  long double _Complex *, long double _Complex ), ?=?(  volatile long double _Complex *, long double _Complex ),
+			?*=?( long double _Complex *, long double _Complex ), ?*=?( volatile long double _Complex *, long double _Complex ),
+			?/=?( long double _Complex *, long double _Complex ), ?/=?( volatile long double _Complex *, long double _Complex ),
+			?+=?( long double _Complex *, long double _Complex ), ?+=?( volatile long double _Complex *, long double _Complex ),
+			?-=?( long double _Complex *, long double _Complex ), ?-=?( volatile long double _Complex *, long double _Complex );
