Initial split of internal and external api types.

It's not addressable. The reflect package actually disallows this, which is the equivalent of what you're suggesting-- it's basically never what you want to do when using the reflect package:

func foo(x int) *int {
  return &x
}