import type { Binary1bitOrParser } from "./binary1bitOr"; import type { BinaryHalfAdderParser } from "./binaryHalfAdder"; import type { FirstNChars } from "./firstNChars"; import type { LengthOfString } from "./lengthOfString"; import type { ShiftString } from "./shiftString"; import type { StringReverse } from "./stringReverse"; export type BinaryFullAdder> = LengthOfString extends LengthOfString ? FirstNChars>, StringReverse>>>>, B> : never; export type BinaryFullAdderParser = X extends `${infer F}${infer R}` ? Y extends `${infer F2}${infer R2}` ? BinaryHalfAdderParser extends `${infer F3}${infer R3}` ? BinaryHalfAdderParser extends `${infer F4}${infer R4}` ? BinaryFullAdderParser> : never : never : never : `${A}${C}`;