Skip to content

Make Proof construct interpreters from relation values - #389

Draft
yoohaemin wants to merge 1 commit into
masterfrom
proof-interpreter-constructor
Draft

yoohaemin wants to merge 1 commit into
masterfrom
proof-interpreter-constructor

Conversation

@yoohaemin

Copy link
Copy Markdown
Owner

Alternative to #387: make Proof construct a ReifiedRelation directly through apply(relation). Composition passes the actual child relation values to child proofs, and syntax constructs and retains the interpreter before execution. This removes the conversion-function layer and the intermediate bound-proof wrapper.

Datasource and generator registrations retain their cached interpreters. This changes the custom-proof API: implementations define apply(relation) instead of parameterless reify; cardinality-specific contramap methods take the source relation explicitly, and integration adaptation helpers accept an already constructed interpreter.

Validation: the full JVM/Scala.js test matrix, fmtCheck, docs/mdoc, and githubWorkflowCheck passed. Additional constructor-reuse and source-binding regressions passed on Scala 2.13 and 3.3, on JVM and Scala.js. Documentation reports six existing link warnings.

This branch has not been deployed

No deployments
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.

1 participant