Index: src/prelude/prelude.cf
===================================================================
--- src/prelude/prelude.cf	(revision 8d6155e94fc7c89efafcd2f2b6e38c54adff4024)
+++ src/prelude/prelude.cf	(revision 0788b7396942d5252ddcebf2b062e855267c1241)
@@ -58,21 +58,21 @@
 long double _Complex	?--( long double _Complex * ),		?--( volatile long double _Complex * );
 
-forall( otype T ) T *			 ?++(		     T ** );
-forall( otype T ) const T *		 ?++( const	     T ** );
-forall( otype T ) volatile T *		 ?++(	    volatile T ** );
-forall( otype T ) const volatile T *	 ?++( const volatile T ** );
-forall( otype T ) T *			 ?--(		     T ** );
-forall( otype T ) const T *		 ?--( const	     T ** );
-forall( otype T ) volatile T *		 ?--(	    volatile T ** );
-forall( otype T ) const volatile T *	 ?--( const volatile T ** );
-
-forall( otype T ) lvalue T		 ?[?](		      T *,	    ptrdiff_t );
-forall( otype T ) const lvalue T	 ?[?]( const	      T *,	    ptrdiff_t );
-forall( otype T ) volatile lvalue T	 ?[?](       volatile T *,	    ptrdiff_t );
-forall( otype T ) const volatile lvalue T ?[?]( const volatile T *,	    ptrdiff_t );
-forall( otype T ) lvalue T		 ?[?](		ptrdiff_t,		  T * );
-forall( otype T ) const lvalue T	 ?[?](		ptrdiff_t, const	  T * );
-forall( otype T ) volatile lvalue T	 ?[?](		ptrdiff_t,	 volatile T * );
-forall( otype T ) const volatile lvalue T ?[?](		ptrdiff_t, const volatile T * );
+forall( dtype T | sized(T) ) T *			 ?++(		     T ** );
+forall( dtype T | sized(T) ) const T *		 ?++( const	     T ** );
+forall( dtype T | sized(T) ) volatile T *		 ?++(	    volatile T ** );
+forall( dtype T | sized(T) ) const volatile T *	 ?++( const volatile T ** );
+forall( dtype T | sized(T) ) T *			 ?--(		     T ** );
+forall( dtype T | sized(T) ) const T *		 ?--( const	     T ** );
+forall( dtype T | sized(T) ) volatile T *		 ?--(	    volatile T ** );
+forall( dtype T | sized(T) ) const volatile T *	 ?--( const volatile T ** );
+
+forall( dtype T | sized(T) ) lvalue T		 ?[?](		      T *,	    ptrdiff_t );
+forall( dtype T | sized(T) ) const lvalue T	 ?[?]( const	      T *,	    ptrdiff_t );
+forall( dtype T | sized(T) ) volatile lvalue T	 ?[?](       volatile T *,	    ptrdiff_t );
+forall( dtype T | sized(T) ) const volatile lvalue T ?[?]( const volatile T *,	    ptrdiff_t );
+forall( dtype T | sized(T) ) lvalue T		 ?[?](		ptrdiff_t,		  T * );
+forall( dtype T | sized(T) ) const lvalue T	 ?[?](		ptrdiff_t, const	  T * );
+forall( dtype T | sized(T) ) volatile lvalue T	 ?[?](		ptrdiff_t,	 volatile T * );
+forall( dtype T | sized(T) ) const volatile lvalue T ?[?](		ptrdiff_t, const volatile T * );
 
 // ------------------------------------------------------------
@@ -96,12 +96,12 @@
 long double _Complex	++?( long double _Complex * ),		--?( long double _Complex * );
 
-forall( otype T ) T *			 ++?(		     T ** );
-forall( otype T ) const T *		 ++?( const	     T ** );
-forall( otype T ) volatile T *		 ++?(	    volatile T ** );
-forall( otype T ) const volatile T *	 ++?( const volatile T ** );
-forall( otype T ) T *			 --?(		     T ** );
-forall( otype T ) const T *		 --?( const	     T ** );
-forall( otype T ) volatile T *		 --?(	    volatile T ** );
-forall( otype T ) const volatile T *	 --?( const volatile T ** );
+forall( dtype T | sized(T) ) T *			 ++?(		     T ** );
+forall( dtype T | sized(T) ) const T *		 ++?( const	     T ** );
+forall( dtype T | sized(T) ) volatile T *		 ++?(	    volatile T ** );
+forall( dtype T | sized(T) ) const volatile T *	 ++?( const volatile T ** );
+forall( dtype T | sized(T) ) T *			 --?(		     T ** );
+forall( dtype T | sized(T) ) const T *		 --?( const	     T ** );
+forall( dtype T | sized(T) ) volatile T *		 --?(	    volatile T ** );
+forall( dtype T | sized(T) ) const volatile T *	 --?( const volatile T ** );
 
 forall( dtype T | sized(T) ) lvalue T		 *?(		     T * );
@@ -178,17 +178,17 @@
 long double _Complex	?+?( long double _Complex, long double _Complex ),	?-?( long double _Complex, long double _Complex );
 
-forall( otype T ) T *			?+?(		    T *,	  ptrdiff_t );
-forall( otype T ) T *			?+?(	      ptrdiff_t,		T * );
-forall( otype T ) const T *		?+?( const	    T *,	  ptrdiff_t );
-forall( otype T ) const T *		?+?(	      ptrdiff_t, const		T * );
-forall( otype T ) volatile T *		?+?(	   volatile T *,	  ptrdiff_t );
-forall( otype T ) volatile T *		?+?(	      ptrdiff_t,       volatile T * );
-forall( otype T ) const volatile T *	?+?( const volatile T *,	  ptrdiff_t );
-forall( otype T ) const volatile T *	?+?(	      ptrdiff_t, const volatile T * );
-forall( otype T ) T *			?-?(		    T *,	  ptrdiff_t );
-forall( otype T ) const T *		?-?( const	    T *,	  ptrdiff_t );
-forall( otype T ) volatile T *		?-?(	   volatile T *,	  ptrdiff_t );
-forall( otype T ) const volatile T *	?-?( const volatile T *,	  ptrdiff_t );
-forall( otype T ) ptrdiff_t		?-?( const volatile T *, const volatile T * );
+forall( dtype T | sized(T) ) T *			?+?(		    T *,	  ptrdiff_t );
+forall( dtype T | sized(T) ) T *			?+?(	      ptrdiff_t,		T * );
+forall( dtype T | sized(T) ) const T *		?+?( const	    T *,	  ptrdiff_t );
+forall( dtype T | sized(T) ) const T *		?+?(	      ptrdiff_t, const		T * );
+forall( dtype T | sized(T) ) volatile T *		?+?(	   volatile T *,	  ptrdiff_t );
+forall( dtype T | sized(T) ) volatile T *		?+?(	      ptrdiff_t,       volatile T * );
+forall( dtype T | sized(T) ) const volatile T *	?+?( const volatile T *,	  ptrdiff_t );
+forall( dtype T | sized(T) ) const volatile T *	?+?(	      ptrdiff_t, const volatile T * );
+forall( dtype T | sized(T) ) T *			?-?(		    T *,	  ptrdiff_t );
+forall( dtype T | sized(T) ) const T *		?-?( const	    T *,	  ptrdiff_t );
+forall( dtype T | sized(T) ) volatile T *		?-?(	   volatile T *,	  ptrdiff_t );
+forall( dtype T | sized(T) ) const volatile T *	?-?( const volatile T *,	  ptrdiff_t );
+forall( dtype T | sized(T) ) ptrdiff_t		?-?( const volatile T *, const volatile T * );
 
 // ------------------------------------------------------------
@@ -428,20 +428,20 @@
 forall( ftype FT ) FT *			?=?( FT * volatile *, forall( ftype FT2 ) FT2 * );
 
-forall( otype T ) T *			?+=?(		     T *	  *, ptrdiff_t );
-forall( otype T ) T *			?+=?(		     T * volatile *, ptrdiff_t );
-forall( otype T ) const T *		?+=?( const	     T *	  *, ptrdiff_t );
-forall( otype T ) const T *		?+=?( const	     T * volatile *, ptrdiff_t );
-forall( otype T ) volatile T *		?+=?(	    volatile T *	  *, ptrdiff_t );
-forall( otype T ) volatile T *		?+=?(	    volatile T * volatile *, ptrdiff_t );
-forall( otype T ) const volatile T *	?+=?( const volatile T *	  *, ptrdiff_t );
-forall( otype T ) const volatile T *	?+=?( const volatile T * volatile *, ptrdiff_t );
-forall( otype T ) T *			?-=?(		     T *	  *, ptrdiff_t );
-forall( otype T ) T *			?-=?(		     T * volatile *, ptrdiff_t );
-forall( otype T ) const T *		?-=?( const	     T *	  *, ptrdiff_t );
-forall( otype T ) const T *		?-=?( const	     T * volatile *, ptrdiff_t );
-forall( otype T ) volatile T *		?-=?(	    volatile T *	  *, ptrdiff_t );
-forall( otype T ) volatile T *		?-=?(	    volatile T * volatile *, ptrdiff_t );
-forall( otype T ) const volatile T *	?-=?( const volatile T *	  *, ptrdiff_t );
-forall( otype T ) const volatile T *	?-=?( const volatile T * volatile *, ptrdiff_t );
+forall( dtype T | sized(T) ) T *			?+=?(		     T *	  *, ptrdiff_t );
+forall( dtype T | sized(T) ) T *			?+=?(		     T * volatile *, ptrdiff_t );
+forall( dtype T | sized(T) ) const T *		?+=?( const	     T *	  *, ptrdiff_t );
+forall( dtype T | sized(T) ) const T *		?+=?( const	     T * volatile *, ptrdiff_t );
+forall( dtype T | sized(T) ) volatile T *		?+=?(	    volatile T *	  *, ptrdiff_t );
+forall( dtype T | sized(T) ) volatile T *		?+=?(	    volatile T * volatile *, ptrdiff_t );
+forall( dtype T | sized(T) ) const volatile T *	?+=?( const volatile T *	  *, ptrdiff_t );
+forall( dtype T | sized(T) ) const volatile T *	?+=?( const volatile T * volatile *, ptrdiff_t );
+forall( dtype T | sized(T) ) T *			?-=?(		     T *	  *, ptrdiff_t );
+forall( dtype T | sized(T) ) T *			?-=?(		     T * volatile *, ptrdiff_t );
+forall( dtype T | sized(T) ) const T *		?-=?( const	     T *	  *, ptrdiff_t );
+forall( dtype T | sized(T) ) const T *		?-=?( const	     T * volatile *, ptrdiff_t );
+forall( dtype T | sized(T) ) volatile T *		?-=?(	    volatile T *	  *, ptrdiff_t );
+forall( dtype T | sized(T) ) volatile T *		?-=?(	    volatile T * volatile *, ptrdiff_t );
+forall( dtype T | sized(T) ) const volatile T *	?-=?( const volatile T *	  *, ptrdiff_t );
+forall( dtype T | sized(T) ) const volatile T *	?-=?( const volatile T * volatile *, ptrdiff_t );
 
 _Bool			?=?( _Bool *, _Bool ),					?=?( volatile _Bool *, _Bool );
