struct Person {
mut:
    name string
    age int
}

struct Pet {
mut:
    name string
    color int
}

struct Programmer {
mut:
	pers Person
	pe shared Pet
}

struct Pro {
mut:
	pers Person
	pe Pet
}

fn main() {
	mut pr := Programmer{
		pers: Person{
			name: 'Qwe'
			age: 44
		}
		pe: Pet{
			name: 'Ghj'
			color: 7
		}
	}
	pr.pe.color = 3
	shared y := pr.pe
	rlock y {
		println(y.color)
	}
	shared g := Pro{}
	g.pers.age = 42
	mut h := []shared Pro{len: 3}
	h[2].pers.age = 42
	println(h[2].pers.age)
}
