Is there a general rule for when you should and shouldn't have a generic interface?
My case in point is a simple data frame interface. There is a "user data" member to allow the implementation to attach any implementation-specific data that needs to go with the frame. I don't know whether to leave it as an object type (and require them to cast it) or to have the interface be generic for this single member so the compiler will catch bad usage.
If it becomes generic, then a lineage of usage needs to also be generic to get the type passed down the line (if that makes sense). It seems like a lot of work for this one member, which is the basis of my question.
Thanks!