Written a few hundred kloc of go and I'd never heard of double nil. Turns out it's nasty.
var i interface{} // (Type: nil, Value: nil) -> i == nil is TRUE
var p *int = nil // p is nil
i = p // (Type: *int, Value: nil) -> i == nil is FALSE!