--- This system is (very) experimental ---
The trace shows values exchanged on channels; "output" is the standard output channel.

 Simple Parallel Functional Language L.A. Monash Comp Sci 8/4/93
  1: let rec
  2:    add = lambda x. lambda list. {add element x to end of list}
  3:       if null list then x::nil else hd list :: add x  tl list,
  4: 
  5: 
  6:    buffer = lambda inch. lambda opch. {buffer inch onto opch}
  7:       let rec
  8:          b = lambda buff. {NB. unbounded buffer}
  9:             if null buff then
 10:                  inch?x       -> b (x::nil)
 11:             else opch!hd buff -> b tl buff     |
 12:                  inch?x       -> b (add x buff)
 13:       in b nil,
 14: 
 15: 
 16:    merge = lambda in1. lambda in2. lambda op. {infinite steams}
 17:       let rec
 18:          m = lambda x1. lambda x2.
 19:             if      x1<x2 then op!x1 -> in1?y -> m y x2
 20:             else if x2<x1 then op!x2 -> in2?z -> m x1 z
 21:             else   {x1=x2}     op!x1 -> merge in1 in2 op
 22:       in
 23:          in1 ? x1 -> in2 ? x2 -> m x1 x2  |
 24:          in2 ? x2 -> in1 ? x1 -> m x1 x2,
 25: 
 26: 
 27:    merge3 = lambda in1. lambda in2. lambda in3. lambda op.
 28:       let in1in2 = chan
 29:       in  merge in1 in2 in1in2  ||  merge in1in2 in3 op,
 30: 
 31: 
 32:    fan4 = lambda inch. lambda op1. lambda op2. lambda op3. lambda op4.
 33:       let rec fan = {4-way fan out}
 34:          inch?x -> op1!x -> op2!x -> op3!x -> op4!x -> fan
 35:       in fan,
 36: 
 37: 
 38:    times = lambda n. lambda inch. lambda opch.
 39:        inch ? x     ->
 40:        opch ! n*x   ->
 41:        times n inch opch,
 42: 
 43: 
 44:    in2 =chan, in3 =chan, in5 =chan, {declare channels}
 45:    out2=chan, out3=chan, out5=chan, {to join}
 46:    b2  =chan, b3  =chan, b5  =chan, {system}
 47:    mergeout=chan                    {together}
 48: 
 49: 
 50: in  times 2 in2 out2               ||
 51:     times 3 in3 out3               ||
 52:     times 5 in5 out5               ||
 53:     merge3 out2 out3 out5 mergeout ||
 54:     fan4 mergeout output b2 b3 b5  ||
 55:     buffer b2 in2                  ||
 56:     buffer b3 in3                  ||
 57:     buffer b5 in5                  ||
 58:     mergeout!1 {seed the system} -> stop
 59: 
 60: {\fB Parallel Hamming Numbers Program. \fP}
 61: 
 62: 

 --- end of parsing --- 
(let rec ((add =(lambda (x ).(lambda (list ).(if (null (list ))then ((x )::(nil ))else ((hd (list ))::(((add )(x ))(tl (list )))))))),
((buffer =(lambda (inch ).(lambda (opch ).(let rec ((b =(lambda (buff ).(if (null (buff ))then (((inch )?(x ))->((b )((x )::(nil ))))else ((((opch )!(hd (buff )))->((b )(tl (buff ))))|(((inch )?(x ))->((b )(((add )(x ))(buff )))))))))
in ((b )(nil )))))),
((merge =(lambda (in1 ).(lambda (in2 ).(lambda (op ).(let rec ((m =(lambda (x1 ).(lambda (x2 ).(if ((x1 )<(x2 ))then (((op )!(x1 ))->(((in1 )?(y ))->(((m )(y ))(x2 ))))else (if ((x2 )<(x1 ))then (((op )!(x2 ))->(((in2 )?(z ))->(((m )(x1 ))(z ))))else (((op )!(x1 ))->((((merge )(in1 ))(in2 ))(op )))))))))
in ((((in1 )?(x1 ))->(((in2 )?(x2 ))->(((m )(x1 ))(x2 ))))|(((in2 )?(x2 ))->(((in1 )?(x1 ))->(((m )(x1 ))(x2 )))))))))),
((merge3 =(lambda (in1 ).(lambda (in2 ).(lambda (in3 ).(lambda (op ).(let ((in1in2 =(chan)))
in (((((merge )(in1 ))(in2 ))(in1in2 ))||((((merge )(in1in2 ))(in3 ))(op ))))))))),
((fan4 =(lambda (inch ).(lambda (op1 ).(lambda (op2 ).(lambda (op3 ).(lambda (op4 ).(let rec ((fan =(((inch )?(x ))->(((op1 )!(x ))->(((op2 )!(x ))->(((op3 )!(x ))->(((op4 )!(x ))->(fan ))))))))
in (fan )))))))),
((times =(lambda (n ).(lambda (inch ).(lambda (opch ).(((inch )?(x ))->(((opch )!((n )*(x )))->((((times )(n ))(inch ))(opch )))))))),
((in2 =(chan)),
((in3 =(chan)),
((in5 =(chan)),
((out2 =(chan)),
((out3 =(chan)),
((out5 =(chan)),
((b2 =(chan)),
((b3 =(chan)),
((b5 =(chan)),
((mergeout =(chan))))))))))))))))))
in ((((((((((((times )(2 ))(in2 ))(out2 ))||((((times )(3 ))(in3 ))(out3 )))||((((times )(5 ))(in5 ))(out5 )))||(((((merge3 )(out2 ))(out3 ))(out5 ))(mergeout )))||((((((fan4 )(mergeout ))(output ))(b2 ))(b3 ))(b5 )))||(((buffer )(b2 ))(in2 )))||(((buffer )(b3 ))(in3 )))||(((buffer )(b5 ))(in5 )))||(((mergeout )!(1 ))->(stop ))))
 --- running --- 
 ch10 1
 output 1 ch11 1 ch3 1 ch6 2 ch12 1 ch4 1 ch7 3 ch8 2 ch13 1 ch5 1 ch9 5 ch10 2
 output 2 ch11 2 ch3 2 ch6 4 ch8 3 ch12 2 ch4 2 ch7 6 ch13 2 ch5 2 ch10 3
 output 3 ch8 4 ch11 3 ch3 3 ch6 6 ch12 3 ch4 3 ch13 3 ch10 4
 output 4 ch8 6 ch7 9 ch11 4 ch3 4 ch6 8 ch12 4 ch4 4 ch13 4 ch10 5
 output 5 ch9 10 ch5 3 ch11 5 ch3 5 ch12 5 ch13 5 ch10 6
 output 6 ch8 8 ch6 10 ch11 6 ch3 6 ch12 6 ch13 6 ch10 8
 output 8 ch8 9 ch7 12 ch4 5 ch11 8 ch12 8 ch13 8 ch10 9
 output 9 ch8 10 ch6 12 ch3 8 ch11 9 ch12 9 ch13 9 ch10 10
 output 10 ch8 12 ch6 16 ch3 9 ch7 15 ch4 6 ch9 15 ch5 4 ch11 10 ch12 10 ch13 10 ch10 12
 output 12 ch8 15 ch7 18 ch4 8 ch11 12 ch12 12 ch13 12 ch10 15
 output 15 ch8 16 ch6 18 ch3 10 ch9 20 ch5 5 ch11 15 ch12 15 ch13 15 ch10 16
 output 16 ch8 18 ch6 20 ch3 12 ch7 24 ch4 9 ch11 16 ch12 16 ch13 16 ch10 18
 output 18 ch8 20 ch6 24 /u/web/homes/lloyd/tildeFP/LambdaCCS/PFL.sun.out: out of heap when allocating 20 bytes (error #853 at 1bfa3)
ch3 15 ch11 18 ch12 18 ch13 18 ch10 20
 output 20 ch8 24 ch6 30 ch3 16 ch7 27 ch4 10 ch9 25 ch5 6 ch11 20 ch12 20 ch13 20 ch10 24
 output 24 ch8 27 ch7 30 ch4 12 ch11 24 ch12 24 ch13 24 ch10 25
 output 25 ch9 30 ch5 8 ch11 25 ch12 25 ch13 25 ch10 27
 output 27 ch8 30 ch6 32 ch3 18 ch7 36 ch4 15 ch11 27 ch12 27 ch13 27 ch10 30
 output 30 ch8 32 ch6 36 ch3 20 ch9 40 ch5 9 ch11 30 ch12 30 ch13 30 ch10 32
 output 32 ch8 36 ch6 40 ch3 24 ch7 45 ch4 16 ch11 32 ch12 32 ch13 32 ch10 36
 output 36 ch8 40 ch6 48 ch3 25 ch11 36 ch12 36 ch13 36 ch10 40
 output 40 ch8 45 ch7 48 ch4 18 ch9 45 ch5 10 ch11 40 ch12 40 ch13 40 ch10 45
 output 45 ch8 48 ch6 50 ch3 27 ch7 54 ch4 20 ch9 50 ch5 12 ch11 45 ch12 45 ch13 45 ch10 48
 output 48 ch8 50 ch6 54 ch3 30 ch11 48 ch12 48 ch13 48 ch10 50
 output 50 ch8 54 ch6 60 ch3 32 ch7 60 ch4 24 ch9 60 ch5 15 ch11 50 ch12 50 ch13 50 ch10 54
 output 54 ch8 60 ch6 64 ch3 36 ch7 72 ch4 25 ch11 54 ch12 54 ch13 54 ch10 60
 output 60 ch8 64 ch6 72 ch3 40 ch9 75 ch5 16 ch11 60 ch12 60 ch13 60 ch10 64
 output 64 ch8 72 ch6 80 ch3 45 ch7 75 ch4 27 ch11 64 ch12 64 ch13 64 ch10 72
 output 72 ch8 75 ch7 81 ch4 30 ch11 72 ch12 72 ch13 72 ch10 75
 output 75 ch8 80 ch6 90 ch3 48 ch9 80 ch5 18 ch11 75 ch12 75 ch13 75 ch10 80
 output 80 ch8 81 ch7 90 ch4 32 ch9 90 ch5 20 ch11 80 ch12 80 ch13 80 ch10 81
 output 81 ch8 90 ch6 96 ch3 50 ch7 96 ch4 36 ch11 81 ch12 81 ch13 81 ch10 90
 output 90 ch8 96 ch6 100 ch3 54 ch7 108 ch4 40 ch9 100 ch5 24 ch11 90 ch12 90 ch13 90 ch10 96
 output 96 ch8 100 ch6 108 ch3 60 ch11 96 ch12 96 ch13 96 ch10 100
 output 100 ch8 108 ch6 120 ch3 64 ch7 120 ch4 45 ch9 120 ch5 25 ch11 100 ch12 100 ch13 100 ch10 108
 output 108 ch8 120 ch6 128 ch3 72 ch7 135 ch4 48 ch11 108 ch12 108 ch13 108 ch10 120
 output 120 ch8 128 ch6 144 ch3 75 ch9 125 ch5 27 ch11 120 ch12 120 ch13 120 ch10 125
 output 125 ch9 135 ch5 30 ch11 125 ch12 125 ch13 125 ch10 128
 output 128 ch8 135 ch7 144 ch4 50 ch11 128 ch12 128 ch13 128 ch10 135
 output 135 ch8 144 ch6 150 ch3 80 ch7 150 ch4 54 ch9 150 ch5 32 ch11 135 ch12 135 ch13 135 ch10 144
 output 144 ch8 150 ch6 160 ch3 81 ch7 162 ch4 60 ch11 144 ch12 144 ch13 144 ch10 150
 output 150 ch8 160 ch6 162 ch3 90 ch9 160 ch5 36 ch11 150 ch12 150 ch13 150 ch10 160
 output 160 ch8 162 ch6 180 ch3 96 ch7 180 ch4 64 ch9 180 ch5 40 ch11 160 ch12 160 ch13 160 ch10 162
 output 162 ch8 180 ch6 192 ch3 100 ch7 192 ch4 72 ch11 162 ch12 162 ch13 162 ch10 180
 output 180 ch8 192 ch6 200 ch3 108 ch7 216 ch4 75 ch9 200 ch5 45 ch11 180 ch12 180 ch13 180 ch10 192
 output 192 ch8 200 ch6 216 ch3 120 ch11 192 ch12 192 ch13 192 ch10 200
 output 200 ch8 216 ch6 240 ch3 125 ch7 225 ch4 80 ch9 225 ch5 48 ch11 200 ch12 200 ch13 200 ch10 216
 output 216 ch8 225 ch7 240 ch4 81 ch11 216 ch12 216 ch13 216 ch10 225
 output 225 ch8 240 ch6 250 ch3 128 ch7 243 ch4 90 ch9 240 ch5 50 ch11 225 ch12 225 ch13 225 ch10 240
 output 240 ch8 243 ch7 270 ch4 96 ch9 250 ch5 54 ch11 240 ch12 240 ch13 240 ch10 243
 output 243 ch8 250 ch6 256 ch3 135 ch11 243 ch12 243 ch13 243 ch10 250
 output 250 ch8 256 ch6 270 ch3 144 ch9 270 ch5 60 ch11 250 ch12 250 ch13 250 ch10 256
 output 256 ch8 270 ch6 288 ch3 150 ch7 288 ch4 100 ch11 256 ch12 256 ch13 256 ch10 270

Limits were exceeded - your program might be looping, possibly deliberately [[it is deliberate in this case]], (the web interpreter is limited to very small, short runs)
PFL / CCS interpreter by L.Allison, School of Computer Science and SWE, Monash University, Australia 3800
Notes and examples: [here]
Run on Sun Microsystems Solaris (Unix) + Pascal; time: Fri Jun 19 12:19:12 EST 2015