-
Notifications
You must be signed in to change notification settings - Fork 5
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
Compromise Interface Redesign #25
Compromise Interface Redesign #25
Conversation
Nice |
@shashi I'm not sure I understand what precise changes you wish to see, but I'm sure I would agree with them, could you go ahead and make the changes and commit them to this branch? After that I think we could merge |
Codecov ReportAttention: Patch coverage is
❗ Your organization needs to install the Codecov GitHub app to enable full functionality. Additional details and impacted files@@ Coverage Diff @@
## master #25 +/- ##
==========================================
- Coverage 42.85% 34.78% -8.08%
==========================================
Files 3 3
Lines 28 23 -5
==========================================
- Hits 12 8 -4
+ Misses 16 15 -1 ☔ View full report in Codecov by Sentry. |
Ok, so reading Alessandro's comment makes me think that we still need 2 different sets of accessors to get this going:
head(x::Expr) = x.head
head(t::Term) = Term # Term type itself!
children(t::Term) = [t.f, t.args...] I think we need a constructor which will be taking @willow-ahrens I hope this makes sense. Basically I will introduce a What's here is easy to make backwards compatible with the right deprecations. @0x0f0f0f please try to keep your comments more concise, so you can get quicker responses :-p |
@shashi can you please push a version with passing tests? i will reply consistently today after work. i like the latest proposal, i have some comments but i think we are coming to a conclusion :) |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
A few small changes
Ok, I think we're finally coming to a conclusion! |
@shashi I could push some fixes later this evening if you're on low bandwidth |
Pushed some adjustments |
Finalized some adjustments. I think we can merge now. WDYT @shashi @willow-ahrens ? |
It's looking good. |
Ready to merge |
if similarterm is deprecated anyway, should it take an exprhead kwarg? I'm not in favor of exprhead, but I wonder if that would keep things working that used it. Apart from that one thought, this looks great to me let's merge it. |
Since we'e doing a major version bump and the package currently has no dependents i would even remove |
I'm in favor of that, how about @shashi ? |
This is supposed to be a minimal interface, so that would make sense |
Ok that is fine with me. |
Merging and releasing |
What is the meaning of the |
I think the doc should be improved. It represent the type of things in typed lambda calculi. It can be redundant with metadata, but it's planned to be used as |
xref #36 |
As discussed in our meeting, this PR simply removes exprhead. Because the documentation of
similarterm(x, head, args)
currently saysx
is allowed to be a type, I believe that correct implementations of similarterm already need to follow exactly the same semantics that we proposed formaketerm
in our discussion. Thus, I have just made that clearer by specifying that implementers must overloadsimilarterm(T::DataType, head, args)
and providing a simple ``similarterm(x, head, args) = similarterm(T::DataType, head, args)` definition. I don't think the rename to maketerm is necessary.@shashi @0x0f0f0f