bivarianceHack とは何か、なぜ必要なのか