Hello! The attached patch is a first stab at re-implementing SRFI-1 in Scheme. Here’s a quick benchmark of ‘fold’, for large and small lists: - in C ("srfi-1.bm: fold: fold" 30 user 5.55 benchmark 5.54999599456787 bench/interp 5.54999599456787 gc 0.0) ("srfi-1.bm: fold: fold" 2000000 user 4.41 benchmark 4.14297119140625 bench/interp 4.14297119140625 gc 0.0) - in Scheme (debug engine) ("srfi-1.bm: fold: fold" 30 user 6.04 benchmark 6.03999599456787 bench/interp 6.03999599456787 gc 0.0) ("srfi-1.bm: fold: fold" 2000000 user 5.14 benchmark 4.87297119140625 bench/interp 4.87297119140625 gc 0.0) - in Scheme (regular engine) ("srfi-1.bm: fold: fold" 30 user 5.46 benchmark 5.45999656677246 bench/interp 5.45999656677246 gc 0.0) ("srfi-1.bm: fold: fold" 2000000 user 4.64 benchmark 4.4111181640625 bench/interp 4.4111181640625 gc 0.0) IOW, with the debug engine (currently the default) and for large lists ‘fold’ in Scheme is ~9% slower than in C; for small lists it’s ~17% slower. With the regular engine, Scheme is ~2% faster for large lists and still ~5% slower for small lists. I’m tempted to put this in and then make the regular engine the default unless ‘--debug’ is specified. What do you think? Thanks, Ludo’.