import mymod { Data, ImpNode } fn foobar_mymod[U](inode ImpNode[U]) ImpNode[U] { return ImpNode{} } fn simple[T]() T { return T{} } struct Foo {} fn (_ Foo) simple[T]() T { return T{} } struct GenericStruct[A, B] { v Data[Data[A], B] } fn proper_generics(gs GenericStruct[A, B]) GenericStruct[A, B] { return gs } fn main() { simple[int]() Foo{}.simple[int]() }