struct MyStruct[T] {
	a T
}

fn mprint[T](s MyStruct[T]) {
	println(s)
}

fn mprint_with_alias(s MyStructAlias) {
	println(s)
}

type MyStructAlias = MyStruct[int]

fn main() {
	a := MyStruct[int]{}
	mprint(a)
	mprint_with_alias(a)

	b := MyStructAlias{}
	mprint(b)
	mprint_with_alias(b)
}
