Звучит так, как будто вы хотите (в первом неэффективном приближении) что-то вроде этого:
import Data.List (nubBy)
import Data.Function (on)
filt = nubBy ((==) `on` snd) . nubBy ((==) `on` fst)
При первом вызове nubBy
появится список, в котором каждое имя отображается толькоодин раз, и затем он будет передан второму, в результате чего появится список, в котором каждое число появляется только один раз.
Простое использование nub
приведет к списку, в котором каждая пара (name,number)
встречается только один раз.;все еще могут быть повторения имен с разными номерами и числами с разными именами.
(Конечно, что-то нестандартное с аккумулятором будет быстрее.)