I wonder how far we need to go hear. Even though technically the interface would allow for other types to be returned, does the implementation actually work that way? 

I'm thinking about this as I'm keen not to over complicate things unless they need to be. For instance, if for 99.9% of cases this assumption works, I'm not sure its worth going hugely out of our way at this point to support the 0.1% case. As long as it doesn't crash if you have the other case, the supporting the 99% would seem to be ok in my mind. 

Once we get an idea of how many people are using it, and if those people really need to have the info captured for there custom type we go from there. 

With this in mind (and assuming we have looked into the implementation as mentioned above), the most important thing is to ensure we don't blow up if they are using custom types and that we return null in this case.