Есть ли практический способ использования натуральных чисел в Haskell?

Я изучаю Haskell и хотел бы наложить использование положительных целых чисел (1,2,3, ...) в некоторых конструкторах, но мне кажется, что я нашел только 'Int 'и' Целочисленный '.

Я мог бы использовать канонический

data Nat = Zero | Succ Nat

, но тогда я не мог бы использовать 1, 4, ... для их обозначения.

Я спрашиваю, есть ли способ сделать это ? (что похоже на использование 'unsigned' в C)

Заранее спасибо.

РЕДАКТИРОВАТЬ: Я собираюсь скрыть это внутри модуля, как объяснил К. А. Макканн. Кроме того, я должен добавить следующую ссылку: http://haskell.org/haskellwiki/Smart_constructors для краткого обзора по этому вопросу. Спасибо, что нашли время ответить!

24
задан Seymour Kooze 30 July 2011 в 16:34
поделиться