count(uint64_t(0))
| take(n)
| sum<uint64_t>();
Clang converted this into n*(n-1)/2. Promise1 = f1(); Promise2 = f2();
v1,v2 = await Join(Promise1, Promise2);
return v1 + v2
I think this is just too much of synthactic noise. await sock.rec(1) == 'A' && await sock.rec(1) == 'B'
checks that first received socket byte is A and second is B. This is clearly order dependant that can't be executed concurrently out of order. do
x <- f1
y <- f2
return $ x + y
this is evaluated as applicative in same way.