Skip to content
This repository was archived by the owner on Oct 12, 2026. It is now read-only.
This repository was archived by the owner on Oct 12, 2026. It is now read-only.

feat: unified type system #4

Closed
Closed

Description

@nos1dot618

Summary

Consolidate lambda-discipline's two separate type systems into a single unified system to eliminate code duplication and enable end-to-end type information flow.

Problem

The project maintains two parallel type systems:

  • Compile-time: lbd::type::Type (parsing, type checking)
  • Runtime: lbd::runtime::type::Type (execution, dynamic checks)

This causes:

  • Code duplication (same concepts implemented twice)
  • Type information loss at compilation→execution boundary
  • Maintenance burden
  • Blocks static type checking implementation

Proposal

Create a single lbd::types::Type system that serves both compile-time and runtime needs, with:

  • Unified TypeKind enum covering all type variants
  • Factory methods for type construction
  • Proper lazy evaluation support
  • Comprehensive test coverage

Acceptance Criteria

  • Single Type class replaces both old systems
  • All integration tests pass
  • Lazy evaluation properly supported
  • No type information loss in pipeline
  • At least 20+ integration tests demonstrating functionality

Related

Enables future work on static type checking and gradual typing.

Metadata

Metadata

Assignees

Labels

enhancementNew feature or request

Type

No type

Projects

No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions