Typeclasses

This commit is contained in:
Dustin Swan 2026-03-26 21:38:32 -06:00
parent a4daf88085
commit 8020f9d1a0
No known key found for this signature in database
GPG key ID: 30D46587E2100467
6 changed files with 123 additions and 19 deletions

View file

@ -1,4 +1,4 @@
import type { AST, Pattern, Definition } from './ast';
import type { AST, Pattern, Definition, TypeDefinition, ClassDefinition, InstanceDeclaration } from './ast';
import { store } from './runtime-js';
import { typecheck } from './typechecker';
@ -221,8 +221,8 @@ function compilePattern(pattern: Pattern, expr: string): { condition: string, bi
}
}
export function compileAndRun(defs: Definition[], typeDefs: TypeDefinition[] = []) {
typecheck(defs, typeDefs);
export function compileAndRun(defs: Definition[], typeDefs: TypeDefinition[] = [], classDefs: ClassDefinition[] = [], instances: InstanceDeclaration[] = []) {
typecheck(defs, typeDefs, classDefs, instances);
const compiledDefs: string[] = [];