What I can understand that you need the lib's user should implement their own proc implementation right?
Actually tables modules exactly does like that, when the user wants to use a specific object as the key, should implement `hash` and `==` so the object can be used as key. It's also catch-able during compile-time.
