module main

struct Stru {
mut:
	a int
	i Iface2
}

interface Iface {
	result() &Iface2
}

interface Iface2 {
	result2() Iface
}

pub fn (s Stru)result() &Iface2 {
	return &Stru{}
}

pub fn (s Stru)result2() Iface {
	return &Stru{}
}

fn main() {
	println('hello world')
	poo := Stru{
		a: 123
		i: poo.result()
	}
 	println('$poo')
}
