
27 Jan
2015
27 Jan
'15
11:03 a.m.
Looking at the generalizations in Data.List I find them pretty odd now when I think about it. I'd expect Data.List functions to be monomorphic to lists, just like I expect functions in Data.Map to be monomorphic to maps. Now there might be generalized versions of these functions in e.g. the Prelude, but generalizing Data.List means that I don't even have the monomorphic versions available if I want to resolve ambiguity by using them*. * It turns out resolving ambiguity is pretty annoying. The type signatures are awkward to write so I end having to write something akin to mymap :: (a -> b) -> [a] -> [b] mymap = map