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

1.6
    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
    LinkedList - Insert/Remove/Append/Prepend/Extract
    Resize buffer function
    Add dispose method to each collection in order to automatically free its data
    Add copy functions (copy of a collection)

2.0
    Add new heap collection implementation
    Add stack based collections

2.1
    Add variadic macros (generate only the necessary functions)

2.2
    Add serialization functions

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

SOMETIME

Add treehashmap
