Field equality

I guess it would be possible to throw run time exception from equals function when `B` types are different for same name and `A` but that seems not very nice.