
Tom Murphy
This seems like an inefficient way to do what I'm trying to do. I'd really appreciate any suggestions or comments:
[...]
I don't see why it would be inefficient, although you don't exactly need the map data structure. A set would totally suffice, and since tuples have an Ord instance, the following should work (untested!): import qualified Data.Set as S newtype Humanism a = Human { animal :: a } instance Eq (Humanism a) where _ == _ = True instance Ord (Humanism a) where compare _ _ = EQ swap :: (a,b) -> (b,a) swap (x,y) = (y,x) nubBySnd :: Ord b => [(a,b)] -> [(a,b)] nubBySnd = map (swap . first animal) . S.toList . S.fromList . map (first Human . swap) Greets, Ertugrul -- nightmare = unsafePerformIO (getWrongWife >>= sex) http://ertes.de/