discard """ output: "[p = nil]" targets: "c cpp" """ import atomics type Pledge* {.exportc.} = object p: PledgePtr PledgeKind {.exportc.} = enum Single Iteration PledgePtr {.exportc.} = ptr object case kind: PledgeKind of Single: impl: PledgeImpl of Iteration: discard PledgeImpl {.exportc.} = object fulfilled: Atomic[bool] var x: Pledge echo x.repr