807903efbb
Introduces `StaticType::Optional` to represent values that can be either of a specific type `T` or `Void`. This is crucial for handling situations in filter pipes where an expression might not always produce a value. The type checker now correctly deduces and propagates this `Optional` type, and the pipeline operator (`pipe`) is updated to unwrap `Optional(T)` results, yielding `T`. This ensures that the type system accurately reflects the potential absence of values in intermediate pipeline steps. Also includes a minor rename in the tuple-struct example from `pipe` to `p` for clarity, and registers the `streams` module.
14 lines
245 B
Plaintext
14 lines
245 B
Plaintext
;; Benchmark: 890ns
|
|
;; Benchmark-Repeat: 2258
|
|
(do
|
|
(def p (fn [conf]
|
|
(do
|
|
(def [str s] conf)
|
|
(def [f ss] s)
|
|
["Symbol:" str "field:" f "id:" ss]
|
|
)
|
|
)
|
|
)
|
|
|
|
(p ["btc" [:close "cls"]])
|
|
) |