initial impl of @RossTate's member typing rules for invariant types
with use site variance