// +build ignore,OMIT

package main

import "fmt"

type Point struct{ x, y int }

func PointToString(p Point) string {
	return fmt.Sprintf("Point{%d, %d}", p.x, p.y)
}

func (p Point) String() string { // HL
	return fmt.Sprintf("Point{%d, %d}", p.x, p.y)
}

func main() {
	p := Point{3, 5}
	fmt.Println(PointToString(p)) // static dispatch // HL
	fmt.Println(p.String())       // static dispatch // HL
	fmt.Println(p)
}
