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

Remembering the binder name when there is no occurrence #68

Closed
Ptival opened this issue Jan 5, 2018 · 1 comment
Closed

Remembering the binder name when there is no occurrence #68

Ptival opened this issue Jan 5, 2018 · 1 comment

Comments

@Ptival
Copy link

Ptival commented Jan 5, 2018

Hey, I've been using bound for quite a while for a personal project, and it satisfies almost all of my needs, except for one issue.

The family of abstractName allows remembering names of binder occurrences after abstraction as a forgettable property, and that's pretty neat. But when a binder does not occur in a term, abtracting over it forgets it entirely.

I have been wondering whether it would be feasible / worth it to remember this as a forgettable property stored in the Scope itself, rather than in B, so that one could re-instantiate the scoped variables with the same name.

I'm not sure whether this is clearly explained. In my use case, I have some dependent types like:

∀ (A : Type) (v : A) , Type

And, when representing them using bound, the binder v gets completely forgotten (which makes sense, since it has no occurrence). But for debugging purposes, it'd be nice to be able to have the Scope remember it.

Let me know what people think about this. Is this unwanted/unfeasible for some reason I'm not thinking about?

@Ptival
Copy link
Author

Ptival commented Jan 6, 2018

I guess this does not make much sense when the abstraction is done via a function a -> Maybe b. Maybe I'm stuck with remembering this one the side, oh well!

@Ptival Ptival closed this as completed Jan 7, 2018
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