package main
import "fmt"
import "reflect"

type Stringer interface {
    String() string
}

type MyInt int

func (m MyInt) String() string {
    return fmt.Sprintf("I'm number %d!", m)
}

func main() {
	defer func() { fmt.Println(recover()) }()
    var m = MyInt(10)
    m_type := reflect.TypeOf(m)

	fmt.Println(m_type.Implements(reflect.TypeOf((*Stringer)(nil)).Elem()))
    fmt.Println(m_type.Implements(reflect.TypeOf(Stringer(nil)))) // This does not work.
}