Mark a function async to have it return a promise; inside, await pauses until the awaited promise settles.
Multiplicative resources become copyable when marked , letting you recover classical behaviour where needed.
SAT instances are expressed over Boolean variables; each variable can appear positive or negated in clauses.
Example: . In type theory this corresponds to dependent sums.
Use for await...of on objects implementing Symbol.asyncIterator, including many Node streams and custom async generators.
Generator function declaration syntax. The asterisk (*) indicates the function is a generator that can yield multiple values over time. When called, returns an iterator object. Combined with async, creates async generators for async iteration.
HashMap stores unique keys mapped to values; ownership is transferred into the map, and lookups are O(1) on average. Construct with HashMap::new() or HashMap::from.
Import via use std::iter::Iterator; and rely on adapters like map, filter, and collect for chaining.
expects a consumer ready for either side, and .
In reductions to SAT, mutual exclusion is encoded by pairing negated literals to forbid simultaneous truth assignments.
Promises model async results and support chaining via then() and catch(), or awaiting inside async functions.
consumes both resources together and is dual to under linear negation.
Example: . In type theory this corresponds to dependent products.
Vectors own contiguous elements on the heap and support push/pop; you create them with Vec::new() or vec![] literal syntax.
restores weakening and contraction dually to , signalling that the resource can be duplicated or discarded.
Returns {:ok, ast} or {:error, reason}. Use the bang variant Code.string_to_quoted!/1 to raise on parse failure. Every node in the resulting AST is a {form, metadata, args} tuple; pass columns: true and token_metadata: true for full position information.
Calls fun.(node, acc) on each node before visiting its children, returning {new_node, new_acc}. Use to collect information from or transform an AST without manually recursing. Macro.postwalk/3 visits children first; Macro.traverse/4 gives both pre- and post-visit hooks.