Just some ideas I'm playing with, here. Not really for production use. Feel free to beg/borrow/steal from here, though: it's quie permissively licensed.
Here are a few data structures I created for Go while working on side projects.
For version 0, I have opted not to make the data structures use the empty interface, and, instead, make the data structures use concrete types like int and string. So far, this approach has not bothered me too much.
For version 2, I have re-implemented everything using Go 1.8's generics (parametric polymorphism). Setting up version 2 was also a nice way to experiment with making version 2 of a go module. I have some evolutionary dead-ends in here, so prefer version 3.
Version 3 is just a slightly more cleaned up version of version 2, especially around standardizing names of methods.