Нашёл такую штуку:
Есть список - точнее кортеж, т.е. гетерогенный список, - и есть функция предикат для его элементов. Исходный список нужно разбить на два списка - в одном элементы удовлетворяющие предикату, в другом - остальные.
Какие могут быть решения? Циклы vs. Рекурсия vs. Морфизмы?
Пришлось убить минут двадцать :) Но морфизм есть.