Hi Julien, nice work! Could you please tell how your approach is related to transducers from the user perspective and technically? (https://github.com/Pharophile/Transducers)
Your example suggests that the API is quite similar to the data flow API of transducers. Let me show your example using transducers.
result := (#+ init: 0) <~ [:x | x * 2] map <~ #(1 2 3). OrderedCollection with: result.
Or the more classical way:
result := #(1, 2, 3) transduce: [:x | x * 2] map reduce: #+ init: 0. OrderedCollection with: result.
Best regards, Steffen