ну да. Какой эффект подразумевает ziplist. Это список значений, где порядок важен.
первый моноид - аппликатив:
pure - независимо от порядка одно и то же значение
<*> - операция только над теми значениями, позиции которых есть в двух списках
второй моноид - альтернатив:
empty - нет значений
<|> - берем все позиции первого, а тех которых нет - второго