-
Notifications
You must be signed in to change notification settings - Fork 3
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
Define smart constructors for data types as notations #153
Labels
Comments
MarvinLira
added
enhancement
New feature or request
Coq
Related to Coq back end or base library
labels
Jul 27, 2020
This was referenced Jul 29, 2020
MarvinLira
added a commit
that referenced
this issue
Aug 22, 2020
MarvinLira
added a commit
that referenced
this issue
Aug 22, 2020
Smart constructors are now generated as `Notation` instead of `Definition`.
MarvinLira
added a commit
that referenced
this issue
Aug 22, 2020
The smart constructors toke `Shape` and `Pos` as arguments, this behavior has been restored.
MarvinLira
added a commit
that referenced
this issue
Aug 24, 2020
MarvinLira
added a commit
that referenced
this issue
Aug 24, 2020
MarvinLira
added a commit
that referenced
this issue
Aug 24, 2020
Fix bugs like unfolding smart constructors in proofs.
MarvinLira
added a commit
that referenced
this issue
Aug 24, 2020
Issue #178 evaluates whether notation scopes should be used to qualify smart constructor notations. |
MarvinLira
added a commit
that referenced
this issue
Aug 29, 2020
- Qualified smart constructor notations are no longer returned in a separate list but filtered out of the main list of sentences at some point. - The local module for qualified smart constructors is no longer exported and has to be imported separately if desired.
MarvinLira
added a commit
that referenced
this issue
Aug 29, 2020
MarvinLira
added a commit
that referenced
this issue
Sep 2, 2020
MarvinLira
added a commit
that referenced
this issue
Sep 3, 2020
Change `Import` to `Export` when importing the submodule for qualified notations of another module.
MajaRet
pushed a commit
that referenced
this issue
Sep 4, 2020
In order to test the generation of modules for qualified notations, a test suite for the conversion of modules has been added.
MajaRet
pushed a commit
that referenced
this issue
Sep 4, 2020
MarvinLira
added a commit
that referenced
this issue
Sep 4, 2020
MajaRet
pushed a commit
that referenced
this issue
Sep 4, 2020
MajaRet
pushed a commit
that referenced
this issue
Sep 4, 2020
MajaRet
pushed a commit
that referenced
this issue
Sep 14, 2020
MajaRet
pushed a commit
that referenced
this issue
Sep 14, 2020
MajaRet
pushed a commit
that referenced
this issue
Sep 14, 2020
MajaRet
pushed a commit
that referenced
this issue
Sep 14, 2020
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Description
Currently for each constructor of each data type a smart constructor is defined that lifts the return value of that constructor into a monadic value.
It would be nice if those smart constructors would be implemented as
Notation
instead ofDefinition
.Motivation
The approach with the
Definition
has two disadvantages:Destructing a
Free Shape Pos (MyPair Shape Pos a b)
twice yields apure (myPair_ fx fy)
instead of aMyPair_ fx fy
.Both points do not apply if a
Notation
is used.The text was updated successfully, but these errors were encountered: