Historical baggage. Use these F classes only within a class - never
expose them outside a class boundary.
These are high-performance workhorse Sather classes,
FLIST, FMAP, FSET and FQSET which use amortised doubling. The "F"
prefix denotes fast. They have slightly awkward interfaces requiring
myset := myset.insert(foo);
Although this appears to be a value-oriented interface, the 'myset'
returned may actually be the same as the 'myset' on the right side (in
fact, it usually will be.) This is done for absolute speed (the 'F'
stands for 'fast'.) We suggest that they be avoided by novices and
should certainly not be used in class interfaces (i.e. their use
should be intra-class).
-- Many of these have no single abstraction
-- and contain all kinds of routines that may be useful in different
flist.sa -has flist.sa FLIST
fmap.sa -has fmap.sa FMAP
fset.sa -has fset.sa FSET -- Representation switching version of FSET
orig_fset.sa -has orig_fset.sa ORIG_FSET -- Original FSET
fqset.sa -has fqset.sa FQSET
fmultimap.sa -has fmultimap.sa FMULTIMAP
fgap_list.sa -has fgap_list.sa FGAP_LIST
flist_test.sa -has flist_test.sa TEST_FLIST
fset_test.sa -has fset_test.sa TEST_FSET
orig_fset_test.sa -has orig_fset_test.sa TEST_ORIG_FSET
fmap_test.sa -has fmap_test.sa TEST_FMAP
fmultimap_test.sa -has fmultimap_test.sa TEST_FMULTIMAP
fgap_list_test.sa -has fgap_list_test.sa TEST_FGAP_LIST