Skip to content

Divide TModel over two modules #51

Description

@sungshik

Currently, TModel has a single ADT declaration. However, some TModel fields are intended to be used by both internal consumers (inside a Typepal-based typechecker) and external consumers (outside), while other fields are intended to be used only by internal consumers. For instance, in the Rascal typechecker:

  • Initially, "total" TModel values are constructed for internal use.
  • Subsequently, "partial" TModel values are constructed for external use (by filtering fields from the total TModel values).

Triggered by usethesource/rascal#2165 (issue) and usethesource/rascal#2803 (PR), a plan was formulated to incorporate the distinction between internal/external uses of TModel fields more thoroughly in Typepal itself. In this plan, the single ADT declaration of TModel is split and divided over two modules. One module contains the base and is intended to be used/imported by external consumers. The other module contains an extension of the base and is intended to be used/imported by internal consumers.

Metadata

Metadata

Assignees

No one assigned

    Type

    No type

    Fields

    No fields configured for issues without a type.

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions