alias FooCodePointer[A, B] = CCodePointer[A, B]; record Foo { a: FooCodePointer[(UInt, Float), ()]; b: FooCodePointer[(UInt), ()]; } foo(Args, Return) { return FooCodePointer[Args, Return](0); } bar(x: Foo) { x.a = foo((UInt, Float), ()); x.b = foo((UInt), ()); } main() { var x = Foo(); bar(x); }