-
Notifications
You must be signed in to change notification settings - Fork 149
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
feat: open lambda effect #7666
base: master
Are you sure you want to change the base?
feat: open lambda effect #7666
Conversation
We should be able to remove the checked_ecasts in the std lib now, right? |
All checked_cast removed. very slow. downside is also that we taint the definition instead of checking at application so information is less precise |
What do you mean? |
Will you investigate the failing tests? |
fx that |
I see. But we were struggling to make that work? What do you propose? |
It was just an observation, its nice to have this as a solution |
@magnus-madsen it solves all of our |
@@ -408,7 +408,7 @@ mod Nel { | |||
case _ => unreachable!() | |||
}; | |||
let Nel(x, xs) = l; | |||
loop(x :: xs, x -> x) | |||
loop(x :: xs, id -> id) |
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.
We have an identity function :) and even an eidentity :)
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.
Oh. You removed OK 👍
But lets please not call an argument id. We can call it z or w.
It seems the base system works then? (Other than a horrible slowdown) What about integration with the rest of the compiler? Monomorphization? Purity reflection? Traits? |
Two typing changes:
def name(args...): type \ ef1 = e: type \ ef2
it is required thatef2 + alpha = ef1
checked_ecast(???)
andtouch(rc)
x: type1 -> e: type2 \ ef
the final lambda type istype1 -> type2 \ ef + alpha
This is used to remove functions
which were primarily used to upcast effects. this makes community builds fail.