3 ms·
I think GP is referring to having two effects, like State1 and State2, both of which allow for stateful effects on int references, and then being able to handle
by throwaway17_17 4y ago
I think GP is referring to having two effects, like State1 and State2, both of which allow for stateful effects on int references, and then being able to handle the effects uniquely for each effect. I think the underlying type theoretical question would be are Tao’s effects nominally vs. structurally typed.
A more practical example would be having two state-like effects for use as different allocation/deallocation strategies.
- zesterer 4y agoTao's effects are nominally typed, so there's no way to accidentally mix them up in the way I assume you're describing. For example: # Define a new effect that yields to the caller effect yield A = A => () # A generator that emits numbers def one_two_three : yield Nat ~ () = { yield(1)!; yield(2)!; yield(3)!; } # Print the numbers to the console def main : io ~ () = { one_two_three handle yield Nat with n => print(n->show)! }