type Versions … // Len returns length of version collection func (s Versions) Len() int { … } // Swap swaps two versions inside the collection by its indices func (s Versions) Swap(i, j int) { … } // Less checks if version at index i is less than version at index j func (s Versions) Less(i, j int) bool { … } // Sort sorts a slice of versions func Sort(versions []Version) { … }