aboutsummaryrefslogtreecommitdiff
path: root/src/nat.ts
blob: 124c2c6c3ca0e8391e5e667721fe1b0c0d796a29 (plain) (blame)
1
2
3
4
5
6
7
8
9
import { Op } from "./util";

export type Add<A extends Op, B extends Op> = { op: '+'; a: A; b: B };
export type Succ<A extends Op> = Add<'1', A>;

export type _0 = '0'
export type _1 = Succ<_0>
export type _2 = Succ<_1>
export type _3 = Succ<_2>