I'm not sure if this is worth it, but I'll document it here anyways. The standard library is currently 2-unrolling a few functions, which means it fuses two recursive calls into one. The main reason is to match the performance, thanks to the careful benchmarking of @nojb. The relevant functions are:
init
map
mapi
map2
I haven't done the unrolling because the potential 20% slow-down on short lists hasn't become a bottleneck yet, but maybe we should do it when more people are using this library.
I'm not sure if this is worth it, but I'll document it here anyways. The standard library is currently 2-unrolling a few functions, which means it fuses two recursive calls into one. The main reason is to match the performance, thanks to the careful benchmarking of @nojb. The relevant functions are:
init
map
mapi
map2
I haven't done the unrolling because the potential 20% slow-down on short lists hasn't become a bottleneck yet, but maybe we should do it when more people are using this library.