Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Dot: Enable syntactic values in types #365

Open
1 of 3 tasks
Blaisorblade opened this issue May 25, 2021 · 1 comment
Open
1 of 3 tasks

Dot: Enable syntactic values in types #365

Blaisorblade opened this issue May 25, 2021 · 1 comment
Milestone

Comments

@Blaisorblade
Copy link
Owner

Blaisorblade commented May 25, 2021

Goal: Enable writing syntactic values in types, for examples such as F.F (\nu z. { A = Int }) (aka, F Int).

To give semantics to such types, we'll use guarded recursion, as in DSub; but we'll combine it with stamping + higher-order ghost state.

Steps:

@Blaisorblade
Copy link
Owner Author

Blaisorblade commented Oct 22, 2021

@stuckintheory suggests that this is needed even to write flatten : ∀ x : {A : *}, List x -> List (List x) we can't use let and we need these "inline" types. (flatMap would also work, but map wouldn't trigger it).

There might be DOT-like encoding alternatives, but they won't work if type constructor is abstract.

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

No branches or pull requests

1 participant