I would like to define a typeclass with a single function
lookup, in the hopes to use it across multiple container types that have a key → value mapping.
- For Map
lookup = Data.Map.lookup
- For list of (k,v) tuples
lookup = Data.List.lookup
I’m stuck on how to unpack the type of a list of tuples to fit a definition.
class Lookup c k where lookup :: k -> c k a -> Maybe a instance (Ord k) => Lookup Map k where lookup :: k -> Map k a -> Maybe a lookup = Data.Map.lookup instance (Eq k) => Lookup ??? k where lookup :: k ->  (k,a) -> Maybe a --  (k,a) for visual symmetry lookup = Data.List.lookup