
This directory contains books which add system-level functionality to ACL2.
These books should be considered experimental, potentially buggy and unsound.

hash-stobjs.lisp allows stobjs to be defined with hash table members.  Three
types of hash table are supported: EQ, EQL, and HONS-EQUAL.  Such a stobj
member is declared within the DEFSTOBJ form as follows:

 (<name> :type (hash-table <hash-table-type>))

EQ hash tables require keys to be symbols.  EQL hash tables require keys to be
EQLABLEP (number, symbol, or character.)  HONS-EQUAL hash tables are only
available if ACL2 is built with the HONS feature.  They place no requirement on
the keys, but each key is HONS-COPYed before use, so in order for lookups to be
fast the keys should always be HONSes or atoms.

Questions about hash-stobjs.lisp to Sol Swords <sswords@cs.utexas.edu>.

