README.md (1440B)
Input-envelope experiment
Run from the repository root:
root=$(mktemp -d)
result/bin/tricu eval test/consumer_input_channel_experiment.tri \
--store "$root" --io --unsafe-io --format tree
rm -rf "$root"
The probe loads the ordinary fold, mapMaybe, and stripPrefix SCP sources
and the paired sources here. The input-envelope versions keep the existing
worker ABI and @ _, but carry the changing accumulator, mapper descriptor,
or prefix alongside the consumed input. It compares concrete success, skip,
exact/short/mismatched prefix, and empty cases against the independent
reference interpreter and the lexical compiler. The fixtures are imported and
compiled from source; no fixed point is exported as a top-level value.
For named effects it also runs state-channel and packed-input versions of a
two-receiver Echo protocol on both the success and operation-error paths.
E.run still retains and supplies an environment: the packed version
needs packedRefStep/packedLexStep adapters to form (resumption input, retained environment) before invoking its worker.
Both source styles compile and agree with the reference on these inputs.
Packing adds envelope matching and repacking at every recurrence while retaining
the effect state channel. Build cost, native CAS load and repeated-call
performance need separate measurements. These exploratory fixtures live in
test/experiments/ and run explicitly.