interface TheInterface {
mut:
	an_interface() ?
}

struct Implementation {
}

fn (mut i Implementation) an_interface() ? {
	return
}

fn maker() ?TheInterface {
	inner := Implementation{}
	return inner
}

fn do(mut inter TheInterface) string {
	return 'ok'
}

fn test_fn_mut_arg_of_interface() {
	mut inner := maker()?
	ret := do(mut inner)
	println(ret)
	assert ret == 'ok'
}
