Skip to content

Conversation

@hyperpolymath
Copy link
Owner

This commit implements numerous TODO items across the core compiler:

lib/types.ml:

  • Add pretty printing for types, rows, effects, kinds, predicates
  • Implement type substitution (subst_ty)
  • Add free type variable collection (free_tyvars)
  • Add occurs check helper
  • Implement type-level nat normalization and equality

lib/typecheck.ml:

  • Implement type variable lookup via symbol table
  • Add AST to internal predicate/nat conversion
  • Implement dependent arrow type conversion
  • Add handler effect checking
  • Implement try/catch type checking
  • Add row restriction for records
  • Implement constructor pattern binding
  • Add type/effect/trait/impl declaration checking

lib/unify.ml:

  • Add predicate compatibility checking
  • Implement alpha-equivalence for forall types
  • Add normalized nat comparison
  • Implement set-based effect unification

lib/symbol.ml:

  • Add qualified path lookups
  • Implement visibility checking
  • Add import registration
  • Add effect operation lookups

lib/resolve.ml:

  • Implement unsafe operation resolution
  • Add impl block resolution
  • Implement import resolution

lib/borrow.ml:

  • Add move site tracking in error messages
  • Implement proper if-then-else branch state handling

lib/quantity.ml:

  • Implement proper branch handling for if expressions

justfile:

  • Implement release workflow with version update and tagging

This commit implements numerous TODO items across the core compiler:

lib/types.ml:
- Add pretty printing for types, rows, effects, kinds, predicates
- Implement type substitution (subst_ty)
- Add free type variable collection (free_tyvars)
- Add occurs check helper
- Implement type-level nat normalization and equality

lib/typecheck.ml:
- Implement type variable lookup via symbol table
- Add AST to internal predicate/nat conversion
- Implement dependent arrow type conversion
- Add handler effect checking
- Implement try/catch type checking
- Add row restriction for records
- Implement constructor pattern binding
- Add type/effect/trait/impl declaration checking

lib/unify.ml:
- Add predicate compatibility checking
- Implement alpha-equivalence for forall types
- Add normalized nat comparison
- Implement set-based effect unification

lib/symbol.ml:
- Add qualified path lookups
- Implement visibility checking
- Add import registration
- Add effect operation lookups

lib/resolve.ml:
- Implement unsafe operation resolution
- Add impl block resolution
- Implement import resolution

lib/borrow.ml:
- Add move site tracking in error messages
- Implement proper if-then-else branch state handling

lib/quantity.ml:
- Implement proper branch handling for if expressions

justfile:
- Implement release workflow with version update and tagging
@hyperpolymath hyperpolymath merged commit 66b6b95 into main Jan 9, 2026
17 of 19 checks passed
@hyperpolymath hyperpolymath deleted the claude/resolve-todos-stubs-PsqO2 branch January 9, 2026 02:29
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants