Type [x:nat] Cases x of ((S x) as b) => Cases x of x => x end end.