What about using `instance of User` here? It's more strict but probably worse in terms of performance, isn't it?