I've been learning about GADTs this weekend and I'm wondering if there is any reason to not use them all the time? Or put another way, should Ocaml have non generalized variants at all (tossing aside the legacy code thing)?