TODO

[ ] Finish Documentation
[X] Remove PUBLIC and PRIVATE
[ ] Add multiset
[ ] Add multimap
[ ] Upgrade heap to a min-max heap
[ ] Add dispose function
[ ] Serialization
[ ] Iterator based functions (like C++ collections)


MAYBE

[ ] Add conditional code generation based on variadic macros


PLANNED

Before 2.0
    Get Documentation fixed and completed

1.5
    OK - Remove PUBLIC and PRIVATE
    OK - Allow for struct to be a possible data type (instead of just pointer to struct)
    OK - Set functions: is_subset, is_proper_subset, is_superset, is_proper_superset, is_disjointset
    Iterator move and move_to
    from_array - Creates a collection with all the elements in a specified array
    to_array - Creates an array with all the elements inside the collection

1.6
    LinkedList - Insert/Remove/Append/Prepend/Extract
    Resize buffer function
    Add dispose method to each collection in order to automatically free its data

2.0
    Add multiset, multimap and new heap implementation

2.1
    Adapt multiset, multimap and new heap implementation to the current standards

2.2
    Add serialization functions
        Header:
            %d - Type specifier (LIST = 0, DEQUE = 1, STACK = 2, etc) for quick check
            %llu - How many elements there are
            %d - If data varies in size
            %llu - Data size

2.3
    Iterator functions (functions that operate relative to iterators position) like add or remove ranges

SOMETIME

Add treehashmap
