struct User {
	a int
	b int
}

struct Foo {
	a int
	b int
}

fn (u User) % () {
}

fn (u User) - (f Foo) User {
	return User{u.a - f.a, u.b - f.a}
}

fn (mut u User) * (u1 User) User {
	return User{}
}

fn (u User) / (mut u1 User) User {
	return User{}
}

fn (u User) + (u1 User) Foo {
	return Foo{
		a: u.a + u1.a
		b: u.b + u1.b
	}
}

fn main() {
	println(User{3, 4})
	println(User{3, 4} - Foo{3, 3})
	println(User{3, 2} < User{2, 4})
	println(User{3, 4} < Foo{3, 4})
	mut u := User{3, 4}
	_ = u
	u += 12
	u %= User{1, 3}
	u += User{2, 3}
}
