Index: doc/generic_types/evaluation/cfa-bench.c
===================================================================
--- doc/generic_types/evaluation/cfa-bench.c	(revision e869e43420853dcfe9ca0c1a625c7dd116953396)
+++ doc/generic_types/evaluation/cfa-bench.c	(revision ff178ee63b849cf9132ad27f35668a68d5abc180)
@@ -27,10 +27,10 @@
 	)
 
-	stack(pair(_Bool, unsigned char)) s2;
+	stack(pair(_Bool, char)) s2;
 	REPEAT_TIMED( "push_bool_char",
-		push( &s2, (pair(_Bool, unsigned char)){ rand() & 0x1, rand() & 0x7F } );
+		push( &s2, (pair(_Bool, char)){ rand() & 0x1, rand() & 0x7F } );
 	)
 
-	stack(pair(_Bool, unsigned char)) t2;
+	stack(pair(_Bool, char)) t2;
 	TIMED( "copy_bool_char", 
 		t2 = s2;
@@ -41,5 +41,5 @@
 	)
 
-	pair(_Bool, unsigned char) max2 = { (_Bool)0, '\0' };
+	pair(_Bool, char) max2 = { (_Bool)0, '\0' };
 	REPEAT_TIMED( "pop_bool_char",
 		max2 = max( max2, pop( &t2 ) );
Index: src/prelude/prelude.cf
===================================================================
--- src/prelude/prelude.cf	(revision e869e43420853dcfe9ca0c1a625c7dd116953396)
+++ src/prelude/prelude.cf	(revision ff178ee63b849cf9132ad27f35668a68d5abc180)
@@ -217,6 +217,14 @@
 signed int ?<?( _Bool, _Bool ),						?<=?( _Bool, _Bool ),
 	   ?>?( _Bool, _Bool ),						?>=?( _Bool, _Bool );
+signed int ?<?( char, char ),				?<=?( char, char ),
+	   ?>?( char, char ),				?>=?( char, char );
+signed int ?<?( signed char, signed char ),				?<=?( signed char, signed char ),
+	   ?>?( signed char, signed char ),				?>=?( signed char, signed char );
 signed int ?<?( unsigned char, unsigned char ),				?<=?( unsigned char, unsigned char ),
 	   ?>?( unsigned char, unsigned char ),				?>=?( unsigned char, unsigned char );
+signed int ?<?( signed short, signed short ),				?<=?( signed short, signed short ),
+	   ?>?( signed short, signed short ),				?>=?( signed short, signed short );
+signed int ?<?( unsigned short, unsigned short ),			?<=?( unsigned short, unsigned short ),
+	   ?>?( unsigned short, unsigned short ),				?>=?( unsigned short, unsigned short );
 signed int ?<?( signed int, signed int ),				?<=?( signed int, signed int ),
 	   ?>?( signed int, signed int ),				?>=?( signed int, signed int );
@@ -265,4 +273,9 @@
 
 signed int ?==?( _Bool, _Bool ),							?!=?( _Bool, _Bool );
+signed int ?==?( char, char ),								?!=?( char, char );
+signed int ?==?( signed char, signed char ),				?!=?( signed char, signed char );
+signed int ?==?( unsigned char, unsigned char ),			?!=?( unsigned char, unsigned char );
+signed int ?==?( signed short, signed short ),				?!=?( signed short, signed short );
+signed int ?==?( unsigned short, unsigned short ),			?!=?( unsigned short, unsigned short );
 signed int ?==?( signed int, signed int ),					?!=?( signed int, signed int );
 signed int ?==?( unsigned int, unsigned int ),					?!=?( unsigned int, unsigned int );
