I'm skeptical that this can work for any K, V. How is serialization done? Can you add a comment on the restrictions here (and hopefully encode that in the type system)?