Péter Gömöri
Péter Gömöri
wow Viktor, you have better memory then I have. Indeed gradualizer was using this undocumented epp function to have column numbers on the parsed abstract format. I wonder if the...
I'm not sure how interchangeably Gradulaizer handles records and tuples. I workaround idea: what if you use the exported type from `public_key` itself (so that you avoid handling record types...
I noticed in my code base a frequent pattern using `lists:key*` with records (which basically makes use of leaky record abstraction) ``` -spec f([#r{}]) -> #r{} | false. f(RL) ->...
(comments from @josefs copied fom #23) Type refinement would be a very powerful feature to have. But it's also non-trivial to implement and it's unclear to me how important it...
(tbh I don't remember what was my original main idea, it looks like it might have been arguing for the introduction of "intersection") anyway as you both describe some common...
I also regard them as conditional constructs, as that is how the Erlang language (compiler/VM) handles them. This is also how I implemented checking them in #24, exactly to address...
thank you @josefs, enlightening the philosophy and attitude of Gradualizer, it helps me when contributing. But I dont want to derail this discussion with lazy ops. Keeping with real conditional...
I repurposed this ticket to host discussion about handling sort-circuit operators (as topic is focusing on that anyway :) )
I now also read the short-circuit chapter and it really seems just an optimisation, and not encouraging the use of any type as second arg. (There is no such example...
Thanks for the examples. I was confused by the inferred type of literals, but that is clarified in #26. So basically if one would like to use any non-boolean expression...