Tomas Mikula
Tomas Mikula
Have a principled way (or two) of how to do logging/tracing.
Implement a tree that supports modifications in different branches concurrently, i.e. update in one branch is not blocked until an update in a different branch completes. Mutual exclusion is needed...
```scala loadFunction[A, B]: Val[A -⚬ B] -⚬ (A =⚬ B) loadFunctionN[A, B]: Val[A -⚬ B] -⚬ Unlimited[A =⚬ B] ```
``` def divide[A]: Source[A] -⚬ (Source[A] |*| Source[A]) ``` Forwards incoming element to whichever output polls first. Biased and unbiased version. Also, a version that divides elements equally between outputs,...
`ValSource.merge` favors the first input, which is a consequence of biased `race`. Implement an unbiased variant where arguments to `race` are swapped after each step.