basic (but likely unsound) polyvariance