Runtime type used by ShouldBeEquivalentTo rather than declared type

Noticed this when working on #116 but left it alone there.  I added a test and am submitting here to get confirmation whether this is a bug or not.