--- /dev/null
+
+;;;; Creating/linking, unlinking, modifying objects should use logged
+;;;; transactions which could be rolled-back or commited.
+;;;; Referencial integrity and type checking should be done as requested.
+;;;; Adding a slot to an object should cause instances that lack it to use
+;;;; the default provided for it. Slot access should ideally be faster than
+;;;; using hash tables; possibly that every object/class should both hold
+;;;; a hash table for slot editing and vector for actual slot contents,
+;;;; with every slot assigned a unique index. Very similar to optimizations
+;;;; done in Common Lisp for packages and symbols.
+;;;; Internal storage of objects could use a system similar to PostgreSQL
+;;;; although we could probably store data as (optionally compressed)
+;;;; s-expressions... One file per object might be suboptimal, though.
+;;;; But we should try not to have to save the whole database at once
+;;;; regularily, as it may grow large. We also ideally shouldn't expect
+;;;; all data sets to have to hold in RAM...
+;;;; We should also permit to specify the location of the transactions logs
+;;;; such that they may be placed on fast battery-backed RAM devices, etc.
+;;;; See what to do in order to maintain in-memory efficient indexes.
+;;;; Slots of objects used for sorting or searching should be indexed.
+;;;; Perhaps that part of that indexing could be stored as part of the
+;;;; object metadata, and perhaps that the index could be larger than
+;;;; RAM. Similar goes for object references, which must be resolved
+;;;; efficiently, and "keys" which must be unique, which existence must
+;;;; be efficiently verified.
+;;;; Finally, it would be nice for the system to be able to work over the
+;;;; network, with safe concurrency.
+;;;; Evaluate if we need OO-style stuff like inheritence.
+