С dsl понятно, вопрос самого разбора. Чтобы быть чуть ближе к реальной задаче:
Есть матрёшка из пакета [Ethernet, Vlan, IP, UDP, DNS] и хочется быстро(на потоке в 40-50 млн пакетов на ядро) уметь понимать что внутри есть DNS с определенными флагами.
Сам разбор ни разу не функциональный. Классическая машина состояний, обернутая в функциональный интерфейс. ФП-идиоматичность часто конфликтует с быстродействием и это нужно учитывать, жестко разделяя код, критичный по времени выполнения и код, критичный по сложности/стоимости поддержки.