если нужна производительность, вот под такое я бы поискал возможность substr в эрланге, которая умеет работать с iolists. если нет, то написать можно самому
вообще, тут конечно сильно зависит от того, какие это будут списки, и какую часть надо выделить. в зависимости от разных факторов, это может быть заведомо намного быстрее, или ненамного, по сравнению с iolists_to_binary с binary:part,
вообще я не утверждаю, что нужно делать преобразование. если я использую бинари, как память и в нее положены куски одинакового размера. и беру их при помощи binary.part. может быть io list из одинаковых кусков делать и выбирать из листа по индексу. вдруг этот лист не сильно много в памяти займет. тут замеры надо поделать. поисследовать. основная борьба на ХЛ у меня была именно с тем, что оно все в память не влезает