Lately, Go has been getting a lot of flack for its lack of generics and parametric polymorphism. Whereas it doesn't have a specific language feature called "generics", generic type operations are very simple to implement. Here is a simple implementation of a generic collection type in Go demonstrating how it's done. Essentially, the type interface{}
acts as a placeholder for any type. By making use of the empty interface, you can pass any type to a function much like you can in dynamically-typed languages.
Edit: Thanks to https://gist.github.com/mfenniak and https://gist.github.com/dominikh for pointing out that the add() function was equivalent to go's built-in append()
Although this has nothing to do with your polymorphism, you should know your "add" method can be quite a bit simpler if you use the builtin append() method. "c.myElements = append(c.myElements, element)" would replace the entire function implementation, except possibly a nil check on c.myElements.