Immutable data structures in Go