Alex Fedorov
Alex Fedorov
@filib Me convincing including `Contracts` globally - highly unlikely. To me it seems the most reasonable way to use it (ie including it only in target classes/modules). I thought about...
@filib Yes, unless we do something about it. Like having an integration with `irb`. I think it is easy to detect if you are running under any kind of `irb`-like...
@filib Makes sense to me too. I think I will research if it is possible to do it in acceptable way.
Happens only on global scope and it will be gone once we forbid global inclusion of `Contracts`.
Hi @philipmw. What do you mean exactly by "contract is violated by raising an exception", can you provide an example?
Either "Contract violation is an exception that is being raised" or "Raising exception will trigger contract violation" ? Which one of these?
Ok. I see. Yes you are right, it will just raise normal exception and contracts will not bother in this case to even verify the result.
And probably make list of consoles configurable? with default to `[:irb, :pry]`
To escape passing around symbols and strings, we can do something like that: ``` ruby Tree = Or[Value, Pair[Self, Self]] ``` `Self` is the special contract, that will keep track...
Another solution I see - explicitly register your contracts into some kind of contract dictionary, and then `Ref[:Tree]` will just fetch it from this dictionary: ``` ruby Tree = Or[Value,...