public static TimedEventChain first(TimedEventDistributor aEventDistributor, System.Func <float, bool> aEvent, float aTime = 0)
        {
            TimedEventChain f = new TimedEventChain();
            TimedEventChain r = f.then(aEvent, aTime);

            aEventDistributor.add_event_raw(f.call, aTime);
            return(r);
        }