Implement duality with GADTs.