cprog my_prog = my_proc { abstract abs_5, {($1 == 0)}, S1; abstract abs_6, {($1 != 0)}, S3; abstract abs_7, {($1 == 0)}, S3; abstract abs_8, {($1 != 0)}, S1; } cproc my_proc { abstract { abs_1 , ($1 == 0) , S1 }; abstract { abs_2 , ($1 != 0) , S3 }; } S1 = ( call_foo -> S2 ), S2 = ( return {$0 == 10} -> STOP | return {$0 == 20} -> STOP ). S3 = ( call_bar -> S4 ), S4 = ( return {$0 == 30} -> STOP | return {$0 == 40} -> STOP ). cproc foo { abstract { abs_3 , (1) , FOO }; } cproc bar { abstract { abs_4, (1), BAR }; } FOO = ( call_foo -> return {$0 == -1} -> STOP ). BAR = ( call_bar -> return {$0 == 50} -> STOP ).