Implementing various data structures in Go