package main type geometry interface { area() float64 perim() float64 } type rect struct { width, height float64 } func (r rect) perim() float64 { return 2*r.width + 2*r.height } func (r rect) area() float64 { return r.width * r.height } func main() { //a := geometry(nil) var b geometry = (geometry)(nil) // assert(a == nil) assert(b == nil) var r *rect b = r assert(b != nil) }