Because not all types are comparable, e.g. a slice. So we can\'t do this
var v ArbitraryType v == reflect.Zero(reflect.TypeOf(v)).Interface()
See this post:
Golang: Reflection - How to get zero value of a field type
Basically you need to have special cases for the non comparable types.