> We could improve this by building lists as left folds when implementing them
> as continuation-passing style folds. We'd just replace above:
>
-> let make_list = \h t. \f z continue_handler abort_handler.
-> f h z (\z. t f z continue_handler abort_handler) abort_handler
+> let make_list = \h t. \f z continue_handler abort_handler.
+> f h z (\z. t f z continue_handler abort_handler) abort_handler
>
> now `extract_head` should return the leftmost head directly, using its
> `abort_handler`:
>
-> let extract_head = \lst larger_computation. lst
-> (\hd sofar continue_handler abort_handler. abort_handler hd)
-> junk
-> larger_computation
-> larger_computation
+> let extract_head = \lst larger_computation. lst
+> (\hd sofar continue_handler abort_handler. abort_handler hd)
+> junk
+> larger_computation
+> larger_computation
>
> 3. To extract tails efficiently, too, it'd be nice to fuse the apparatus
> developed in these v5 lists with the ideas from