struct Point {
	x i64
	y i64
}

fn (p Point) foo() {
	println(p.x)
}

fn (p Point) + (q Point) Point {
	return Point{p.x + q.x, p.y + q.y}
}

fn (p Point) += (q Point) Point {
	return Point{p.x + q.x, p.y + q.y}
}

fn main() {
	mut p := Point{1, 2}
	q := Point{3, 4}
	p += q
	p -= q
	println(p)
}

