lists of characters to Prolog programs are stored in packed
UTF-8 encoding by the engine.
-Without this innovation, storing a list of characters in memory
-would use one memory cell per character, one memory cell per
-list constructor, and one memory cell for each tail that occurs
-in the list. Since one memory cell takes 8 bytes on 64-bit
-machines, the packed representation used by Scryer Prolog yields
-an up to **24-fold reduction** of memory usage, and
-corresponding reduction of memory accesses when creating and
-processing strings.
+Without this innovation, storing a list of characters in memory would
+use one WAM memory cell per character, one cell per list
+constructor, and one cell for each tail that occurs in the list. Since
+one cell takes 8 bytes in the WAM as implemented by
+Scryer Prolog, the packed representation yields an up to
+**24-fold reduction** of memory usage, and corresponding
+reduction of memory accesses when creating and processing
+strings.
Scryer Prolog's compact internal string representation makes it
ideally suited for the use case Prolog was originally developed for: