+--------------------------------------------------------------------
+(normal-top-level-add-to-load-path '("apel"))
+--------------------------------------------------------------------
+
+If you are using Emacs 20.3 or later or XEmacs, there are no need to
+set up load-path with normal installation.
+
+
+* Version specific information
+
+** For Emacs 18 users: "old byte-compiler" vs "new byte-compiler"
+
+In this package, we use compile-time evaluation heavily.
+Unfortunately, the byte-compiler bundled with Emacs 18 (the "old
+byte-compiler") does not have features such as `eval-when-compile'
+and `eval-and-compile', and our emulation version of these macros
+evaluate "compile-time evaluation" at load-time or at run-time!
+In addition, the "old byte-compiler" cannot compile top-level use of
+macros and leaves most of our code uncompiled.
+
+Therefore, we recommend you to use the "new" optimizing byte-compiler.
+It is the origin of byte-compiler bundled with Emacs 19 and later.
+
+Optimizing byte-compiler for Emacs 18 is available from the Emacs
+Lisp Archive and its mirrors.
+
+In Mule 1.* days, "contrib" package for Mule 1.* was distributed and
+it contained the "new byte-compiler" for Mule. But, I think it is
+difficult to obtain this package now.
+
+AFAIK, the "new byte-compiler" for Emacs 18 is also bundled with SKK
+9.6 or SKK 10.62a. You can get SKK 10.62a from the following URL;
+
+ http://openlab.ring.gr.jp/skk/maintrunk
+
+They include patch for Mule 1.*.
+
+
+** For Emacs 19.34 and XEmacs 19.14 users: "old custom" vs "new custom"
+
+"custom" library bundled with Emacs 19.32 - 19.34, XEmacs 19.14, and
+Gnus 5.2/5.3 is "old", its API is incompatible with "new custom"
+bundled with Emacs 20.1, XEmacs 19.15, or newer, and Gnus 5.4/5.5.
+
+"new custom" for Emacs 19.34 and XEmacs 19.15 - 20.2 is available
+from the following URL.
+
+ftp://ftp.dina.kvl.dk/pub/Staff/Per.Abrahamsen/custom/custom-1.9962.tar.gz
+
+(Note that "new custom" bundled with XEmacs 19.15 - 20.2, and Gnus
+5.4/5.5 is older than this version.)
+
+Before installing "new custom", you should check the following points.
+
+ 1) If you stick to Gnus 5.2/5.3 (or any other applications which
+ use "old custom"), you should not install "new custom".
+
+ 2) If you use Mule (based on Emacs 19), you must apply this patch
+ to "new custom".
+
+----8<------8<------8<------8<------8<------8<------8<------8<----
+--- custom-1.9962/cus-face.el~ Wed Mar 4 19:52:39 1998
++++ custom-1.9962/cus-face.el Mon Mar 9 08:05:33 1998
+@@ -96,7 +96,7 @@
+ "Define a new FACE on all frames, ignoring X resources."
+ (interactive "SMake face: ")
+ (or (internal-find-face name)
+- (let ((face (make-vector 8 nil)))
++ (let ((face (make-vector face-vector-length nil)))
+ (aset face 0 'face)
+ (aset face 1 name)
+ (let* ((frames (frame-list))
+----8<------8<------8<------8<------8<------8<------8<------8<----
+
+ 3) Applications compiled with "custom" require the same version of
+ "custom" at load-time (and run-time). Therefore, if you use "new
+ custom", you must always include "new custom" in your load-path.
+ The easiest way to achieve this is "subdirs.el"; if you installed
+ "new custom" in "/usr/local/share/emacs/19.34/site-lisp/custom/",
+ put the following line to "/usr/local/share/emacs/19.34/site-lisp/subdirs.el".
+
+ (normal-top-level-add-to-load-path '("custom"))
+
+
+* How to use
+
+** alist
+
+*** Function put-alist (ITEM VALUE ALIST)
+
+Modify ALIST to set VALUE to ITEM. If there is a pair whose car is
+ITEM, replace its cdr by VALUE. If there is not such pair, create
+new pair (ITEM . VALUE) and return new alist whose car is the new
+pair and cdr is ALIST.
+
+*** Function del-alist (ITEM ALIST)
+
+If there is a pair whose key is ITEM, delete it from ALIST.
+
+*** Function set-alist (SYMBOL ITEM VALUE)
+
+Modify a alist indicated by SYMBOL to set VALUE to ITEM.