//public sealed class EventSelector<TRecieve, TStart, TParent>
        //{
        //    private readonly RunSelector<TRecieve, TStart, TParent> _selector;

        //    public EventSelector(RunSelector<TRecieve, TStart, TParent> selector) => _selector = selector;

        //    public EventRecieve<TNew, TStart, TParent> For<TNew>(IActorRef target)
        //        => new EventRecieve<TNew, TStart, TParent>(_selector.Flow, target);
        //}

        public static EventRecieve <TRecieve, TStart> Event <TRecieve, TStart>(this RunSelector <TRecieve, TStart> selector, IActorRef target)
        => new EventRecieve <TRecieve, TStart>(selector.Flow, target);
 public static EventSourceTargetSelector <TRespond, TStart> EventSource <TRecieve, TStart, TRespond>(this RunSelector <TRecieve, TStart> selector, IEventSource <TRespond> source)
 => new EventSourceTargetSelector <TRespond, TStart>(selector.Flow, source);
 public MutateClass(TMutator mutator, RunSelector <TRecieve, TStart> selector)
 {
     _mutator  = mutator;
     _selector = selector;
 }
 public static MutateClass <TRecieve, TStart, TMutator> Mutate <TRecieve, TStart, TMutator>(
     this RunSelector <TRecieve, TStart> selector, TMutator mutator) => new MutateClass <TRecieve, TStart, TMutator>(mutator, selector);