CDuce integers are arbitrarly large, positive or negative. The three literals 9 09 009 correspond to the same integer. It corresponds also to the type "integer of value nine" which is a singleton set containing the integer 9.
#print_type 9;; -> 9
The expression
type Foo = 1 | 2 | 3 | 4
define the type Foo which corresponds to the set containing the first four positive integer. An other way to construct a set of consecutive integers:
type Foo = 1--4
#print_type -1 | -2 | -3;; -> -3---1
The sets of strictly positive and strictly negative integers, and constructions from them
type Positive = 1--* type Negative = *---1 type NonNul = Positive | Negative #print_type NonNul | 0 -> Int