diff --git a/.gitignore b/.gitignore new file mode 100644 index 0000000..b25c15b --- /dev/null +++ b/.gitignore @@ -0,0 +1 @@ +*~ diff --git a/package.json5 b/package.json5 index e55bd79..42f4b76 100644 --- a/package.json5 +++ b/package.json5 @@ -3,14 +3,20 @@ version: '0.0.0', description: 'Proof of concepts for a PocoMath-adjacent approach to a possible math.ts (TypeScript analogue of mathjs)', main: 'index.js', - 'scripts': { - test: 'echo "Error: no test specified" && exit 1' + scripts: { + test: 'echo "Error: no test specified" && exit 1', }, - keywords: ['math', 'typescript'], + keywords: [ + 'math', + 'typescript', + ], repository: { type: 'git', url: 'https://code.studioinfinity.org/glen/typomath.git', }, author: 'Glen Whitney', - license: 'Apache-2.0' + license: 'Apache-2.0', + dependencies: { + 'over.ts': 'github:m93a/over.ts', + }, } diff --git a/pnpm-lock.yaml b/pnpm-lock.yaml new file mode 100644 index 0000000..01f6172 --- /dev/null +++ b/pnpm-lock.yaml @@ -0,0 +1,15 @@ +lockfileVersion: 5.4 + +specifiers: + over.ts: github:m93a/over.ts + +dependencies: + over.ts: github.com/m93a/over.ts/0fd6e18afd4ca5a23c9e09d1fcd6b7357b642247 + +packages: + + github.com/m93a/over.ts/0fd6e18afd4ca5a23c9e09d1fcd6b7357b642247: + resolution: {tarball: https://codeload.github.com/m93a/over.ts/tar.gz/0fd6e18afd4ca5a23c9e09d1fcd6b7357b642247} + name: over.ts + version: 0.0.0 + dev: false diff --git a/src/steps/one.ts b/src/steps/one.ts new file mode 100644 index 0000000..7300e34 --- /dev/null +++ b/src/steps/one.ts @@ -0,0 +1,22 @@ +import { useTypes } from 'over'; + +const types = { + number: (x: unknown): x is number => typeof x === 'number', + bigint: (x: unknown): x is bigint => typeof x === 'bigint' +} + +const overload = useTypes(types) + +const add = overload({ + 'number,number -> number': (a,b) => { + console.log('Adding numbers', a, b) + return a+b + }, + 'bigint,bigint -> bigint': (a,b) => { + console.log('Adding bigints', a, b) + return a+b + } +}) + +console.log('Sum of 5 and 7 is', add(5,7)) +console.log('Sum of 5n and 7n is', add(5n, 7n))