proc_0, proc_1, proc_2 :: Stmt ()

proc_0 = Block [ Iter (V "pi") (S "ps")
                          (Recv [(mPid (pvar "x"), Send (pvar "x") [(mInt, Skip ())] ())] ()) ()
                , Loop (LV "end_X")
                          (Recv [(mPid (pvar "y"), Send (pvar "y") [(mTT, Goto (LV "end_X") ())] ())] ()) ()
                ]
         ()
proc_0, proc_1, proc_2 :: Stmt ()
proc_0 = Block [ Iter (V "pi") (S "ps")
                          (Recv [(mPid (pvar "x"), Send (pvar "x") [(mInt, Skip ())] ())] ()) ()
                , Loop (LV "end_X")
                          (Recv [(mPid (pvar "y"), Send (pvar "y") [(mTT, Goto (LV "end_X") ())] ())] ()) ()
                ]
         ()
proc_0 = Block [ Iter (V "pi") (S "ps")
                          (Recv [(mPid (pvar "x"), Send (pvar "x") [(mInt, Skip ())] ())] ()) ()
                , Loop (LV "end_X")
                          (Recv [(mPid (pvar "y"), Send (pvar "y") [(mTT, Goto (LV "end_X") ())] ())] ()) ()
                ]
         ()