Section. Final Remark [nbe-final-remark]

After the initial version of this article was put online, András Kovács pointed out to me that the normaliser nf7 (what I called NbE with shared normal forms) is known as strong call-by-need evaluation in the literature, such as in this paper by Biernacka et al, where 'strong' refers to normalising under binders. Also, Biernacka et al. implement such a normaliser using (freshly) named variables in values rather than de Bruijn indices, because shifting names is no-op, and normal forms with named variables can always be converted back de Bruijn indices easily. Arguably this is a nicer way to do NbE with shared normal forms than what we did (nf7 and nf8) here, but I still like our solutions here, showing how far one can go with only the lazy tagging trick and some careful analysis of the performance bottleneck.