procedure FriendType; procedure FriendType?; [T | FriendType?(T)] friendType(static T) = recordWithProperties( ( (FriendType?, true), (FriendType, T), ), ); record Foo = friendType(Bar); record Bar = friendType(Foo); main() = TypeSize(Foo);