Inconsistency in how bound names and parallelism are handled
Summary: Need to think about how this works, but it's easy to write broken code currently.
A straightforward example I just encountered:
_createThing(model = Model A) -> +$thingy
_createThing(model = Model B, My Pointer($thingy)) -> _navigateTo
It's intuitively obvious that the second line depends on the first, and the code is very clear QL. But it apparently doesn't work right: the two lines are evaluated in parallel, and (worse) apparently run without errors, even though $thingy
isn't actually bound when the second line runs!
Either this should produce a clear error (ideally at compile time), or it should work as expected, with the second line not executing until the first completes. But the current behavior is wrong.
Note that this does work as expected if you have an arrow at the end of the first line; this prevents the parallelism.