Anton Trunov
Anton Trunov
@Gusarich Sounds like a great idea!
I think we could do this, but it should be an opt-in optimization strategy, so by default we should preserve the semantics fully and if the user wants those kinds...
> As a first version, I will focus on optimizers that preserve the semantics (i.e., the condition with the biconditional). Sounds like a great starting point! > For non-integer expressions,...
> Is it because of the limit in cell storage? A cell, which is a basic data structure in TVM, can have up to 1023 bits of data and up...
> Also, what are the fields and methods for the second use case — all of them? In the getter example we just treat a contract as basically a struct...
> Would that make contracts into Struct-like types, such that the following could be defined? I think yes. It does not seem to be insanely useful but I believe this...
Yes, this is needed to implement #322. I'd propose to use the pipe symbol `|` instead of `?` because it's essentially a type analogue of logical disjunction and there won't...
Well, because it is commutative. In the sense that you can always build an isomorphism between `Either X Y` and `Either Y X`.
Yeah, that's a good point, but still more verbose syntax won't prevent this. I'm happy to change my opinion if you have a convincing _concrete_ example, though
@novusnota We should just allow `?` to be used for any type, not only type idents, hence `X or? Y` becomes `(X or Y)?`