Currently I\'m using this helper function to check for nil and nil interfaces
func isNil(a interface{}) bool { defer func() { recover() }() return a == n
If neither of the earlier options works for you, the best I could came up so far is:
if c == nil || (reflect.ValueOf(c).Kind() == reflect.Ptr && reflect.ValueOf(c).IsNil())
At least it detects (*T)(nil) cases.