Yann Hamdaoui
Yann Hamdaoui
This is more or less what's been implemented in #1987. This only concerns functions, but functions are the problematic bit (for the rest, records and static types can't be applied,...
First, let me say that the general idea of aiding to decide between unions branches by using annotation is pretty interesting. As a general comment, I'm still trying to understand...
Sorry, I didn't want to publish the comment already. Follow-up questions/remarks about the two problems: ## Problem 1 Note that we already have a contract equality testing, which is able...
At last, another question I have is around the specifics of the implementation of "reading annotations". Currently annotations are just wrapping nodes, and some of them get erased. We could...
Thanks for the answers. I think I start to have a clearer view now, although there are still details to be fleshed out. My current understanding is the following: what...
(I wrote my previous message before "Problem 3" was posted) As per 3, the thing is that something being a concrete value is a very fragile property, that shouldn't usually...
Given the discussion, and the fact that ADTs now landed in 1.5, I think we won't pursue this investigation in a foreseeable future for the typed part.
> But notably, what seems to be missing is the ability to reference values from other "Modules". Evaluating {foo|Number} & {bar|Number|default = foo} rightly fails with an unbound identifier error....
> I was also wondering if it might be beneficial to create a builtin like std.modules.eval to allow performant evaluation of these modules, together with improved, dedicated error messages. In...
That's a fair demand and probably cheap to implement. We'd make that a primop relying on a Rust implementation under the hood, for performance reason.