Index: /trunk/archive/pslib/include/psBitset.h
===================================================================
--- /trunk/archive/pslib/include/psBitset.h	(revision 1580)
+++ /trunk/archive/pslib/include/psBitset.h	(revision 1581)
@@ -22,20 +22,16 @@
 ;
 
-/** Destructor */
-void psBitsetFree(psBitset *restrict myBits) ///< bitset to destroy
-;
-
 /************************************************************************************************************/
 
 /** Set a bitset */
 psBitset *
-psBitsetSet(psBitset *restrict myBits,	///< Input bitset
-	     int bit)			///< Bit to set
+psBitsetSet(psBitset *myBits,		///< Input bitset
+	    int bit)			///< Bit to set
 ;
 
 /** Check a bitset.  Returns true or false */
-int
-psBitsetTest(const psBitset *restrict checkBits, ///< bitset to check
-	      int bit)			///< Bit to check
+bool
+psBitsetTest(const psBitset *checkBits, ///< bitset to check
+	     int bit)			///< Bit to check
 ;
 
@@ -43,7 +39,7 @@
 psBitset *
 psBitsetOp(psBitset *outBits,		///< Output bitset or NULL
-	    const psBitset *restrict inBits1, ///< Input bitset 1
-	    char *operator,		///< bitset operator (AND, OR, XOR)
-	    const psBitset *restrict inBits2) ///< Input bitset 2
+	   const psBitset *inBits1,	///< Input bitset 1
+	   char *operator,		///< bitset operator (AND, OR, XOR)
+	   const psBitset *inBits2)	///< Input bitset 2
 ;
 
Index: /trunk/archive/pslib/include/psHash.h
===================================================================
--- /trunk/archive/pslib/include/psHash.h	(revision 1580)
+++ /trunk/archive/pslib/include/psHash.h	(revision 1581)
@@ -7,6 +7,16 @@
  */
 
-/** DO WE NEED TO DEFINE HashTable? */
-typedef struct HashTable psHash;	///< Opaque type for a hash table
+/** A hash table */
+typedef struct {
+    int nbucket;                        ///< number of buckets
+    psHashBucket **buckets;             ///< the buckets themselves
+} psHash;
+
+/** The hash buckets, which compose the hash */
+typedef struct psHashBucket {
+    char *key;                          ///< key for this item of data
+    void *data;                         ///< the data itself
+    struct psHashBucket *next;          ///< list of other possible keys
+} psHashBucket;
 
 /** Functions **************************************************************/
@@ -15,28 +25,27 @@
  */
 
-/// Allocate hash buckets in table.
+/** Allocate hash buckets in table. */
 psHash *psHashAlloc(void);
 
-/// Free hash buckets from table.
-void psHashFree(psHash *table,		///< hash table to be freed
-		void (*itemFree)(void *item) ///< how to free hashed data; or NULL
+/** Add entry to table. */
+bool psHashAdd(psHash *table,		///< table to insert in
+	       const char *key,		///< key to use
+	       void *data		///< data to insert
     );
 
-/// Insert entry into table.
-void *psHashInsert(psHash *table,	///< table to insert in
-		   const char *key,	///< key to use
-		   void *data,		///< data to insert
-		   void (*itemFree)(void *item) ///< how to free hashed data; or NULL
-    );
-
-/// Lookup key in table.
+/** Lookup key in table. */
 void *psHashLookup(psHash *table,	///< table to lookup key in
 		   const char *key	///< key to lookup
     );
 
-/// Remove key from table.
-void *psHashRemove(psHash *table,	///< table to lookup key in
-		   const char *key	///< key to lookup
+/** Remove key from table. */
+bool psHashRemove(psHash *table,	///< table to lookup key in
+		  const char *key	///< key to lookup
     );
+
+/** Get list of keys */
+psList *psHashKeyList(psHash *table	///< table for which to get keys
+    );
+
 
 /* \} */ // End of DataGroup Functions
Index: /trunk/archive/pslib/include/psSort.h
===================================================================
--- /trunk/archive/pslib/include/psSort.h	(revision 1580)
+++ /trunk/archive/pslib/include/psSort.h	(revision 1581)
@@ -15,11 +15,11 @@
 psVector *
 psSort(psVector *out,			///< Sorted array to return. May be NULL
-       const psVector *restrict in)	///< Array to sort
+       const psVector *in)		///< Array to sort
 ;
 
 /** Sort an array, along with some other stuff.  Returns an index array */
 psVector *
-psSortIndex(psVector *restrict out,	///< Output index array (may be NULL)
-	    const psVector *restrict in) ///< Array to sort
+psSortIndex(psVector *out,		///< Output index array (may be NULL)
+	    const psVector *in)		///< Array to sort
 ;
 
