interface Widget{
mut:
	init()
}

struct Button{}
fn (mut b Button) init(){}

struct Window{
mut:
	widgets []Widget
}

fn (mut w Window) add(mut widget Widget){}

fn main(){
	mut win := Window{}
	mut btn := Button{}
	win.add(btn)  // should be an error here
}
