use Sets instead of Lists

@williamboxhall The inputs/outputs shouldn't have duplicated elements and the order is not necessary.
The behavior and input types continue to be the same for ```traverse```, ```collect``` and ```get```. Only the fetch method will use ```Set``` and it won't affect the order for these methods.