ContainersF_classes.module



--------------------------->  GNU Sather - module  <---------------------------
-- Copyright (C) 199x by International Computer Science Institute            --
-- This file is part of the GNU Sather package. It is free software; you may --
-- redistribute  and/or modify it under the terms of the  GNU General Public --
-- License (GPL)  as  published  by the  Free  Software  Foundation;  either --
-- version 2 of the license, or (at your option) any later version.          --
-- This  program  is distributed  in the  hope that it will  be  useful, but --
-- WITHOUT ANY WARRANTY without even the implied warranty of MERCHANTABILITY --
-- or FITNESS FOR A PARTICULAR PURPOSE. See Doc/GPL for more details.        --
-- The license text is also available from:  Free Software Foundation, Inc., --
-- 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA                     --
-------------->  Please email comments to   <--------------

(*
   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 
writebacks, i.e.
    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
--  circumstances.

    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
    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 FLIST_TEST
    fset_test.sa -has fset_test.sa FSET_TEST
    fmap_test.sa -has fmap_test.sa FMAP_TEST
    fmultimap_test.sa -has fmultimap_test.sa FMULTIMAP_TEST
    fgap_list_test.sa -has fgap_list_test.sa FGAP_LIST_TEST