GADTs Improvement
Refactores GADT and corrected TypeFamilies.