После прочтения ghc 7.4. примечания к предварительному выпуску и статья Giving Haskell a Promotion , я все еще не понимаю, что вы на самом деле делаете с продвигаемыми типами. Например, в руководстве GHC приводятся следующие примеры продвигаемых типов данных:
data Nat = Ze | Su Nat
data List a = Nil | Cons a (List a)
data Pair a b = Pair a b
data Sum a b = L a | R b
Какое использование они имеют как виды? Можете ли вы привести примеры (кода)?