data Int = Positive Nat | Negative Nat data Nat = Zero | Succ Nat
data Int = Zero | NonZero Sign PositiveInt data PositiveInt = One | Succ PositiveInt data Sign = Positive | Negative