Index: libcfa/prelude/builtins.c
===================================================================
--- libcfa/prelude/builtins.c	(revision ad9f5931463621e55b660fd57101ba749263b146)
+++ libcfa/prelude/builtins.c	(revision b006c51e840218110835b593a1db552fd116ef58)
@@ -184,4 +184,33 @@
 static inline quasi_void ?=?(quasi_void &, quasi_void & _src) { return _src; }
 
+forall( E ) trait Bounded {
+	E lowerBound(void);
+	E upperBound(void);
+};
+
+forall( E | Bounded( E ) ) trait Serial {
+	int fromInstance( E e );
+	E fromInt_unsafe( int i );
+	E succ_unsafe( E e );
+	E pred_unsafe( E e );
+};
+
+forall( E | Serial( E ) ) {
+	E fromInt( int i );
+	E succ( E e );
+	E pred( E e );
+	int Countof( E );
+}
+
+
+forall( E ) trait CfaEnum {
+	const char * label( E e );
+	int posn( E e );
+};
+
+forall( E, V | CfaEnum( E ) ) trait TypedEnum {
+	V value( E e );
+};
+
 // Local Variables: //
 // mode: c //
Index: libcfa/src/enum.hfa
===================================================================
--- libcfa/src/enum.hfa	(revision ad9f5931463621e55b660fd57101ba749263b146)
+++ libcfa/src/enum.hfa	(revision b006c51e840218110835b593a1db552fd116ef58)
@@ -2,46 +2,4 @@
 
 #include "iostream.hfa"
-
-forall( E ) trait Bounded {
-	E lowerBound(void);
-	E upperBound(void);
-};
-
-forall( E | Bounded( E ) ) trait Serial {
-	int fromInstance( E e );
-	E fromInt_unsafe( int i );
-	E succ_unsafe( E e );
-	E pred_unsafe( E e );
-};
-
-forall( E | Serial( E ) ) {
-	E fromInt( int i );
-	E succ( E e );
-	E pred( E e );
-	int Countof( E );
-}
-
-// forall( E | Bounded(E) ) trait SafeSerial {
-//	 // unsigned fromInstance( E e );
-//	 E fromInt_unsafe( unsigned i );
-//	 // E succ_unsafe( E e );
-//	 //E pred_unsafe( E e );
-
-//	 unsigned fromInstance( E e );
-//	 E fromInt( unsigned i );
-//	 E succ( E e );
-//	 E pred( E e );
-// };
-
-forall( E ) trait CfaEnum {
-	const char * label( E e );
-	int posn( E e );
-};
-
-forall( E, V | CfaEnum( E ) ) trait TypedEnum {
-	V value( E e );
-};
-
-// I/O
 
 forall( istype & | istream( istype ), E | CfaEnum( E ) | Serial(E) )
