Да много применений. Попробуйте без макросов, частичного применения и композиции применить несколько операций на одной структуре данных
doThis(doThat(param1, doThird(doFourth(abc))))
Это же ад... с объектами почти прилично
abc.doThis().doThat(param1).doThird().doFourth()