A Leibniz trick for reasoning about GADTs.