rec nat : Type = Sum { Zero | Suc nat };
-- Inductive definition of nat
let one : nat = Zero;
let two : nat = Suc one;
let test_case_split: nat -> Type = split
{ Zero => 1
| Suc => 1
};
let zero_anyway: \Pi n: nat. test_case_split n = split
{ Zero => 0
| Suc => 0
};
-- Dependent function!
let pred: \Pi n: nat. nat = split
{ Zero => Zero
| Suc n => n
};