Comments (2)
I totally agree with you on abstracting out the more general notion of substitution out of Subst
. As for literature, Erwin Brady's paper on Idris Elaboration should be a good example (especially page 16 and beyond). Other examples would be any other tactic based proof/program refinement systems.
from unbound-generics.
@TOTBWF I don't completely follow your example (maybe github isn't the best communication medium - do you have a pointer to a paper with an example language that I can take a look at. Either something from the literature or maybe a draft of something you're working on?)
However, it sounds to me like the notion of substitution that you want for meta-variables is not "plain vanilla capture-avoiding substitution" which is largely what Subst
is about.
I do agree that it would be nice if unbound-generics
could help with boilerplate of other notions of substitution. So I would propose another path: instead of enriching Subst
with new methods, or adding a new sort of variable to the core of unbound-generics
, let's look for reusable pieces of Subst
that we can abstract out to give us building blocks for writing new substitution algorithms.
Does that make sense?
from unbound-generics.
Related Issues (20)
- unbound-generics-0.1.2 won't compile with GHC 7.10.x
- Add `Hashable` instances for names and binder combinators
- Add `substBind` operation like `unbound` recently did HOT 9
- Unification function HOT 2
- What does Embed really do? HOT 2
- Substitution should continue traversing even when the variables do not match HOT 1
- Borrow good ideas from moniker HOT 1
- Bump for GHC 8.6.1 HOT 2
- Remove Show superclass on Alpha HOT 1
- Add `Read` instances for names and binder or how to derive it HOT 1
- Allow name representations other than String HOT 3
- test
- Build failure with mtl-2.3
- Cherrypick `instantiate` from sweirich's branch HOT 1
- unbind2Plus doesn't work with two different pattern types HOT 1
- README example doesn't compile with recent GHC
- Support transformers >= 0.6.0.0 HOT 1
- Help Wanted: Looking for co-maintainer HOT 8
- subst captures variables when substitution is with a bound variable HOT 3
Recommend Projects
-
React
A declarative, efficient, and flexible JavaScript library for building user interfaces.
-
Vue.js
🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
-
Typescript
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
-
TensorFlow
An Open Source Machine Learning Framework for Everyone
-
Django
The Web framework for perfectionists with deadlines.
-
Laravel
A PHP framework for web artisans
-
D3
Bring data to life with SVG, Canvas and HTML. 📊📈🎉
-
Recommend Topics
-
javascript
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
-
web
Some thing interesting about web. New door for the world.
-
server
A server is a program made to process requests and deliver data to clients.
-
Machine learning
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
-
Visualization
Some thing interesting about visualization, use data art
-
Game
Some thing interesting about game, make everyone happy.
Recommend Org
-
Facebook
We are working to build community through open source technology. NB: members must have two-factor auth.
-
Microsoft
Open source projects and samples from Microsoft.
-
Google
Google ❤️ Open Source for everyone.
-
Alibaba
Alibaba Open Source for everyone
-
D3
Data-Driven Documents codes.
-
Tencent
China tencent open source team.
from unbound-generics.