This document is a wishlist, its items aren't ordered in any way other than inline notes about dependency relations # Language ## Typeclasses Elixir-style protocols probably, only with n-ary dispatch which I saw in SICP-js # Rules ## Placeholder constraints Simultaneously match a pattern to a subexpression and give it a name to copy it over - Copy unique 1->1 names over by default to preserve their location info # STL ## Command short-circuiting Functions for each command type which destructure it and pass it to an Orchid callback ## Runtime error handling result? multipath cps utils? Not sure yet. ## Pattern matching This was the main trick in Orchid, still want to do it, still need to polish the language first ## Macro error handling Error tokens with rules to lift them out. Kinda depends on preservation of location info in rules to be really useful # Systems ## Async Join allows to run code when a tuple of pending events all resolve on the event poller ## New: Network Event-driven I/O with single-fire events and resubscription to relay backpressure to the OS. Initially TCP ## New: Marshall Serialization of Orchid data, including code, given customizable sets of serializable foreign items. Alternatively, code reflection so that all this can go in the STL