: test-communication ( -- )
    chan.make
    dup [
        # closure has (ch) on its stack
        dup chan.receive drop   # receive 21: (ch 21)
        2 i.*                   # double: (ch 42)
        swap chan.send drop     # send 42: ()
    ] strand.spawn drop
    drop    # clean up extra channel: (ch)
    dup 21 swap chan.send drop   # send 21: (ch)
    chan.receive drop   # receive 42: (value)
    42 test.assert-eq
;
