Index: libcfa/src/parseconfig.cfa
===================================================================
--- libcfa/src/parseconfig.cfa	(revision 6604ea11bdd64dd0478f354a59dd913fb9e2292c)
+++ libcfa/src/parseconfig.cfa	(revision 930609e202c85d7d3423902a344d3e807c7fb614)
@@ -115,4 +115,32 @@
 
 
+// *********************************** validation ***********************************
+
+
+forall(T | arithmetic( T ))
+bool is_nonnegative( T & value ) {
+	T zero_val = 0;
+	return value >= zero_val;
+}
+
+forall(T | arithmetic( T ))
+bool is_positive( T & value ) {
+	T zero_val = 0;
+	return value > zero_val;
+}
+
+forall(T | arithmetic( T ))
+bool is_nonpositive( T & value ) {
+	T zero_val = 0;
+	return value <= zero_val;
+}
+
+forall(T | arithmetic( T ))
+bool is_negative( T & value ) {
+	T zero_val = 0;
+	return value < zero_val;
+}
+
+
 // Local Variables: //
 // tab-width: 4 //
Index: libcfa/src/parseconfig.hfa
===================================================================
--- libcfa/src/parseconfig.hfa	(revision 6604ea11bdd64dd0478f354a59dd913fb9e2292c)
+++ libcfa/src/parseconfig.hfa	(revision 930609e202c85d7d3423902a344d3e807c7fb614)
@@ -1,17 +1,8 @@
 #pragma once
 
-
-// *********************************** exceptions ***********************************
+#include <rational.hfa>
 
 
-EHM_EXCEPTION(Validation_Failure)(
-	const char * key;
-	void * variable;
-);
-
-void ?{}( Validation_Failure & this, config_entry & entry );
-
-
-// *********************************** main code ***********************************
+// *********************************** initial declarations ***********************************
 
 
@@ -57,4 +48,19 @@
 }
 
+
+// *********************************** exceptions ***********************************
+
+
+EHM_EXCEPTION(Validation_Failure)(
+	const char * key;
+	void * variable;
+);
+
+void ?{}( Validation_Failure & this, config_entry & entry );
+
+
+// *********************************** main code ***********************************
+
+
 void parse_config( const char * config_file, config_entry entries[], size_t num_entries );
 
@@ -67,4 +73,21 @@
 bool parse( const char *, double & );
 
+
+// *********************************** validation ***********************************
+
+
+forall(T | arithmetic( T ))
+bool is_nonnegative( T & );
+
+forall(T | arithmetic( T ))
+bool is_positive( T & );
+
+forall(T | arithmetic( T ))
+bool is_nonpositive( T & );
+
+forall(T | arithmetic( T ))
+bool is_negative( T & );
+
+
 // Local Variables: //
 // mode: c //
