Signals are, by definition, external to a workflow. So it doesn’t make sense to send them from within. What is a specific use case you are trying to solve?
So the idea is: evaluate all of the actions in the current state, but if one of them executes a “jump” action, move to the state requested by the jump. It acts like a “goto”. Any of the (possibly recursive) calls to Eval could generate a jump.
Yes, Eval is part of the workflow. What I’m not understanding is how to get the SendChannel from a workflow module function call. Or should I put it into the workflow context, as my example shows? Or do I need to pass it into the functions that need it? I’m looking for the equivalent of workflow.GetSignalChannel but for SendChannels (or Channels) as opposed to ReceiveChannels.