These functions have their arguments reversed when compare to e.g. Map

For example

Data.HashTable.lookup :: HashTable key val -> key -> IO (Maybe val)

Data.Map.lookup :: Ord key => key -> Map key val -> Maybe val

I find this a bit odd. Is this by design?