lib(list_collection)

   
    A library for creation and management of list collections (LCOL).
    Internally the library uses either the a hashtable or arrays to store lists and their tails. 
    The advantage of a hash LCOL is that its size does not have to be known in advance and that 
    non number indexes can be used to address lists in the collection. The drawback of a hash LCOL 
    is that access to collection elements is slower than for array LCOL. Elements of array LCOL 
    can be addressed only by positive integers which internally are array indexes. See create/2 
    for more details.
    
    The motivation for creating this library was to be able to easily build input lists for global 
    constraints from collections of input structures (see example). For this purpose an array(3) LCOL 
    was usually sufficient, and only a limited set of predicates needed (create/2 , append_element/3, 
    terminate_all_lists/2, get_list/3).
    
    But the idea was extended, additional predicates were added for prefixing the lists, and 
    reinitialisation of lists. The support for hash LCOL has been added. Hash LCOL may be useful for 
    some filtering, grouping predicates in cases when the number of lists may vary or indexing by 
    atoms/ground terms is more readable/convenient.

    

