A capture-free, C-shaped Zag function handed to C.
callbacks.zg
# Callbacks (design/ffi.md, 2026-09-21): a capture-free, C-shaped Zag function handed to C.extern.Cfnqsort['base':ptr.mut[int32],'n':uint64,'size':uint64,'cmp':fn[ptr[int32],ptr[int32]]->int32];fnascending['a':ptr[int32],'b':ptr[int32]]->int32{no_checkreturnptr.read['a']minusptr.read['b'];# C hands pointers to two elements}fndescending['a':ptr[int32],'b':ptr[int32]]->int32{no_checkreturnptr.read['b']minusptr.read['a'];}MAIN{let'nums':=[5,1,4,2,3];no_checkqsort[lend.mut'nums',5,size.of[int32],ascending];std::print.useful['nums',newln];no_checkqsort[lend.mut'nums',5,size.of[int32],descending];std::print.useful['nums',newln];}