Notes about the use of GADTs