Hmh, here I'm not quite sure what do you mean. I believe these methods can still be called on pointers to values, I've written some small snippet to verify this concept and it seems to be working ok:
http://play.golang.org/p/TuffeFV-VFbut maybe I misunderstood something about your suggestion?
And as for other arguments, I don't see why a pointer receiver would be considered more idiomatic; currently I believe quite the opposite, that there's no need to introduce address of a receiver when the methods are clearly read-only, and the receiver when passed as a value is just three words (a slice). Also it seems to me that there are similar cases in the standard packages, like:
http://golang.org/pkg/image/#Rectangle.Empty
----
As an unrelated "bonus", I wanted to show an usage example for the library, which isn't properly displayed on the gopkgdoc site, but would be displayed on a local godoc instance (hope the formatting won't get squashed now):
// [{1 1} {1 2} {2 1}]
func ExamplePolygon_Construct() {
subject := Polygon{{{1, 1}, {1, 2}, {2, 2}, {2, 1}}} // small square
clipping := Polygon{{{0, 0}, {0, 3}, {3, 0}}} // overlapping triangle
result := subject.Construct(INTERSECTION, clipping)
// END OF EXAMPLE, just printing the result in reproducible order now:
out := []string{}
for _, point := range result[0] {
out = append(out, fmt.Sprintf("%v", point))
}
sort.Strings(out)
fmt.Println(out)
}
Thanks,
/Mateusz Czapliński.