more notes on GADTs