Skip to content

RFC 107 - full type-directed library APIs and compile-time type tokens #752

Description

@dannymeijer

Summary

RFC 107 is a full v0.6 implementation commitment. Type tokens are narrow compiler-backed Type[T] evidence, not general runtime type objects; they enable complete type-directed APIs without string targets, helper-family duplication, or public-boundary identity drift.

Scope

  • Resolve every RFC 107 decision required for Planned status, including admitted token kinds, precise generic return-mapping mechanism, type-alias provenance, and alias metadata rules.
  • Implement expected-context type tokens, storage/return/collection limits, overload selection, precise type-directed return mapping, aliases, reexports, decorators, reflection boundaries, package metadata, documentation, LSP, semantic inspection, diagnostics, lowering, and backend-neutral emission.
  • Prove identical callable and type behavior through same-module, import, facade, package, alias, decorator, and tolerant-tooling paths.

Boundaries

  • No general first-class type objects, equality/hashing/serialization/pattern matching for tokens, arbitrary type-level computation, or new broad runtime reflection system.
  • Existing explicit call-site generics and associated-type work retain their own contracts.

Delivery

Done when

  • RFC 107 reaches Planned status with no unresolved implementation-blocking decisions.
  • Every supported type-directed API has one source-semantic and public metadata representation.
  • Users can inspect selected overloads, mappings, aliases, and identities without generated backend code.

Activity

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Metadata

Metadata

Assignees

No one assigned

    Labels

    documentationImprovements or additions to documentationfeatureNew feature or requestincan language semanticsSuggestions, features, or bugs related to the Incan Language itself (syntax and semantics)runtime / core cratesSuggestions, features, or bugs related to the `incan-core`, `incan-stdlib`, 'incan-derive` crates

    Projects

    • Status
      Backlog

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions