diff --git a/src/Comparison.ts b/src/Comparison.ts
new file mode 100644
index 0000000..6ce507b
--- /dev/null
+++ b/src/Comparison.ts
@@ -0,0 +1,39 @@
+
+import { Digit, DigitsToNumber, TupleForDigit } from "."
+
+type GreaterThan = DigitsToNumber<[5]>
+
+
+type Max = never
+
+type MaxDigitArray =
+ A extends B
+ ? A | B
+ : MaxByLength extends A | B
+ ? MaxDigit, Head> extends Head | Head
+ ? [Head, ...MaxDigitArray, Tail>]
+ : MaxDigit, Head> extends Head
+ ? A
+ : B
+ : MaxByLength
+
+type MaxDigit =
+ MaxByLength, TupleForDigit> extends TupleForDigit ? A
+ : MaxByLength, TupleForDigit> extends TupleForDigit | TupleForDigit ? A | B
+ : B
+
+type MaxByLength =
+ A['length'] extends B['length'] ? A | B
+ : ToZeros extends [...infer Other, ...ToZeros] ? A
+ : B
+
+type ToZeros = { [Property in keyof Tuple]: 0}
+
+type HeadTail = Tuple extends [infer Head extends Type, ...infer Tail extends Type[]] ? [Head, Tail] : never
+
+type Head = Tuple extends [infer Head extends Type, ...Type[]] ? Head : never
+type Tail = Tuple extends [Type, ...infer Tail extends Type[]] ? Tail : never
+
+let q: MaxDigitArray<[2, 0, 2], [2, 1]>
+
+let x: ToZeros<[2, 0]>
diff --git a/src/Subraction.ts b/src/Subraction.ts
new file mode 100644
index 0000000..7e50931
--- /dev/null
+++ b/src/Subraction.ts
@@ -0,0 +1,15 @@
+import { Digit, DigitsToNumber, SplitDigits, TupleForDigit } from ".";
+
+export type Add = DigitsToNumber, SplitDigits>> & number
+
+type SubtractDigitArrays =
+ [A, B] extends [[...infer HeadA extends Digit[], infer TailA extends Digit], [...infer HeadB extends Digit[], infer TailB extends Digit]] ? AddTails : [A, B] extends [[...infer HeadA extends Digit[], infer TailA extends Digit], []] ? AddTails : [A, B] extends [[], [...infer HeadB extends Digit[], infer TailB extends Digit]] ? AddTails<[], 0, HeadB, TailB, Carry> : [A, B] extends [[], []] ? Carry extends true ? [1] : [] : []
+
+type SubtractTails =
+ SplitDigits> extends [1, infer Result extends Digit] ? [...AddDigitArrays, Result] : [...AddDigitArrays, SplitDigits>[0]]
+
+type SubtractDigits =
+
+ [...TupleForDigit, ...TupleForDigit, ...(Carry extends false ? [] : [0])]['length'] & number
+
+