HaskellTopGADT
makeAllGADT