child :: ProcessId -> Process ()
child p = do me <- getSelfPid
             send p (Ping me)
             q <- expect
             send q (Foo { a = 0, b = me })
             expect :: Process ()
child :: ProcessId -> Process ()
child p = do me <- getSelfPid
             send p (Ping me)
             q <- expect
             send q (Foo { a = 0, b = me })
             expect :: Process ()
child p = do me <- getSelfPid
             send p (Ping me)
             q <- expect
             send q (Foo { a = 0, b = me })
             expect :: Process ()